Автор работы: Пользователь скрыл имя, 11 Марта 2013 в 22:29, контрольная работа
Важнейшую роль в курсе информатики играет формирование у студентов алгоритмического стиля мышления, который выступает не только как стимулятор общего развития, но и позволяет ввести их в сложный мир новых информационных технологий. Без программирования развитие алгоритмического мышления практически невозможно, так как отсутствует возможность компьютерного эксперимента: проверки работоспособности разработанного алгоритма. Взаимодействие человека с ЭВМ носит характер общения, поэтому возникли и широко используются различные специальные языки программирования как средство общения человека с компьютером.
- Exit – позволяет завершить работу текущего программного блока (программу, процедуру);
- Halt(n) – позволяет завершить работу программы с кодом завершения n.
К операторам разветвляющейся
структуры относится также опер
2.2 Примеры решений задач разветвленной структуры
2.2.1 Вычислить |
На рисунке 2.1 представлена блок-схема и программа для решения данной задачи. В блоке 4 производится ввод значения х из какого-либо одного заданного интервала. В блоках 5 и 6 осуществляется проверка условий принадлежности х к одному из интервалов. Если х<0 (блок 5), то вычисления производятся по формуле в блоке 7, если нет, то проверяется условие х=0. Если это условие выполнено, то для вычисления у используется блок 8, иначе - блок 9. Независимо от того, по какой формуле осуществлено вычисление, следующее действие - вывод вычисленного значения у. Блоки 2, 3, 11, 12 используются для организации многократного ввода различных значений х, что называется зацикливанием. Блоки 5, 6, 12 реализуются в программе операторами условного перехода, а блоки 3, 7, 8, 9, 11 – операторами присваивания. В качестве аналогов блоков 2, 4, 10 в программе используются процедуры ввода-вывода.
Program primer2_1; Label m1; Var i, n:integer; x, y:real; Begin Write(‘Введи N’); Read(n); i:=1; m1: Write(‘Введи x’); Read(x); If x<0 then y:=exp(x) else if(x>=0)and(x<=1) then y:=0 else y:=sin (x); write (‘Y=’,y:10:3); i:=i+1; if i<=n then goto m1 end. |
Рисунок 2.1 - Блок-схема алгоритма и программа разветвленной структуры
Program primer2_2;
Var year, i, k : integer;
Begin
Write ('Введите год'); Read (year); Write (‘- the year of the ‘);
i := (year-3) mod 12; k := (3010 – year) mod 60 div 12;
Case k of
0: writе ('green ');
1: write ('red ');
2: write ('yellow ');
3: write ('white ');
4: write ('black ');
end;
Case i of
1: Writeln ('rat'); {крыса}
2: Writeln ('bull'); {бык}
3: Writeln ('tiger'); {тигр}
4: Writeln ('rabbit'); {кролик}
5: Writeln ('dragon'); {дракон}
6: Writeln ('snake'); {змея}
7: Writeln ('horse'); {лошадь}
8: Writeln ('sheep'); {овца}
9: Writeln ('monkey'); {обезьяна}
10: Writeln ('hen'); {петух}
11: Writeln ('dog'); {собака}
0: Writeln ('pig'); {свинья}
end;
end.
2.3 Варианты заданий
2.3.1 Составить блок-схему
и программу разветвляющейся
структуры для вычисления
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
2.3.2 Составить программу решения задачи, используя оператор выбора
2.4 Контрольные вопросы
1 Какие логические
отношения используются в
2 Какие функции выполняет оператор условного перехода?
3 Чем отличаются полная и краткая формы оператора условного перехода?
4 Как изображается
на блок-схеме оператор
5 Какую функцию выполняет
оператор безусловного
6 Как изображается
на блок-схеме оператор
7 Какие особенности характерны для оператора выбора?
8 Как можно изобразить на блок-схеме оператор выбора?
Лабораторная работа №3. Программирование алгоритмов циклической структуры
Цель работы – ознакомление с особенностями программирования алгоритмов циклической структуры.
3.1 Алгоритмы циклической структуры. Операторы цикла
Алгоритм, в котором предусмотрено многократное выполнение одной и той же последовательности действий, называется алгоритмом циклической структуры, а эта последовательность – циклом. Циклический алгоритм позволяет существенно сократить объем программы. Цикл можно организовать двумя способами:
- с помощью счетчика и условия перехода (см. пример 2.2.1);
- с помощью оператора цикла.
В Паскале существует несколько операторов цикла. Оператор цикла представляет собой единую синтаксическую конструкцию, в которой можно выделить три основные части: заголовок цикла, тело цикла, заключительную строку. Заголовок цикла образуют ключевое слово и управляющая фраза, задающая способ управления повторениями. Заключительную строку составляет ключевое слово, заканчивающееся знаком “;”. Тело задает действия, которые повторяются в соответствии с правилами, заданными управляющей фразой. Если число повторений известно заранее (до начала повторений), то в такой ситуации лучше воспользоваться оператором цикла с параметром For-To или For-Downto (оператор цикла с фиксированным числом повторений). В остальных случаях следует использовать операторы цикла с предусловием While-Do или постусловием Repeat-Until.
Оператор цикла с параметром имеет две модификации For-To и For-Downto и следующие ограничения:
Все операторы цикла (For-To, For-Downto, While-Do и Repeat-Until) приведены в таблице D1. Общим для всех перечисленных операторов цикла является то, что циклы, организованные с их помощью, содержат обязательные компоненты: задание начального значения параметра цикла; тело цикла; задание шага изменения параметра цикла; проверку на выход из цикла.
Для операторов While и Repeat изменение параметра цикла по какому-либо закону в теле цикла обязательно.
При программировании алгоритмов циклической структуры часто используются приемы накапливания сумм, произведения, количества:
Накапливание суммы |
до цикла |
S = 0 |
в цикле |
S=S+элемент |
Накапливание произведения |
P = 1 |
P=P*элемент | ||
Накапливание количества |
K = 0 |
K=K+1 |
3.2 Примеры алгоритмов и программ циклической структуры
3.2.1 Вычислить все значения функции Y=A*K2, если К меняется от 1 до 10 с шагом 1. Решить задачу несколькими способами (на рисунках 3.1, 3.2, 3.3 и 3.4 показаны все способы решения задачи).
Program Primer3_1; var k: integer; a, y: real; begin read (a); for k := 1 to 10 do begin y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:10:3) end end. | |
Рисунок 3.1 – Пример решения задачи с использованием оператора For-To | |
Program Primer3_2; var k: integer; a, y: real; begin read (a); for k := 10 downto 1 do begin y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:10:3) end end. | |
Рисунок 3.2 – Пример решения задачи с использованием оператора For-Downto | |
Program primer3_3; var k:integer; a,y: real; begin read (a); k:=1; while k<=10 do begin y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:9:3); k := k + 1 end end. | |
Рисунок 3.3 – Пример решения задачи с использованием оператора While-Do | |
Program primer3_4; var k:integer; a,y: real; begin read (a); k:=1; repeat y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:9:3); k := k + 1 until k > 10 end. | |
Рисунок 3.4 – Пример решения задачи с использованием оператора Repeat-Until |
3.2.2 Вычислить значения функции для х, меняющегося в интервале от –5 до 7 с шагом 0,5. Найти количество (К) значений у(х) равных нулю, сумму (S) положительных значений у(х) и произведение (P) отрицательных значений у(х). Решить задачу, используя, оператор For-To.
Блок-схема и программа решения задачи представлены на рисунке 3.5.
Program primer3_5; var S, P, y, x:real; K, i:integer; begin K := 0; S := 0; P := 1; N := trunc((7+5)/0.5+1); x := -5; for i := 1 to N do begin y := x*sin(x)-exp(x); writeln(’x=’, x:4:1,’y=’, y:10:3); if y = 0 then K := K+1 else if y > 0 then S := S+y else P := P*y; x := x+0.5; end; writeln(K, S, P) end. | |
Рисунок 3.5 – Пример решения задачи с использованием цикла FOR-TO с вещественным параметром |
При использовании оператора цикла
3.3 Варианты заданий
Решить задачу согласно варианту тремя способами, т.е. с использованием операторов цикла For-To (или For-Downto), While-Do и Repeat-Until.
1 Вычислить сумму четных и нечетных первых N чисел натурального ряда.
2 Дано целое число N. Вычислить P=N!=1´2´3´…´N.
3 Даны числа a и n. Вычислить P = a´(a-n) ´ (a-2n) ´ (a-3n) ´…´ (a-n2).
4 Вычислить произведение первых n сомножителей .
5 Вычислить произведение четных и нечетных первых N чисел натурального ряда.
6 Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых S = sinX + sinX2 + sinX3 +…+ sinXn.
Информация о работе Программирование алгоритмов линейной структуры