Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмы и алгоритмические языки. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
81
END ELSE BEGIN Y:=X+Y; WRITE (`Y=`,Y) END END. A) множественный выбор B) циклическая C) вспомогательная D) линейная Е) разветвляющаяся
20. Определите, какое условие должно быть записано в блоке «ЕСЛИ», для того чтобы выполнить действия в ветке «да»
A) X<>0 B) X<=0 C) X<15 D) X>= –15
21. Определите, какое условие должно быть записано в блоке «ЕСЛИ», для того чтобы выполнить действия в ветке «нет»
A) X0 B) X<0 C) X>-5 D) X>= –15
22. Результат выполнения программы
VAR K, L: INTEGER;
82
BEGIN К:=1; IF K<5 THEN L:=K*7 ELSE L:=K–10 WRITE (L) END. A) –9 B) 7 C) 10 D) 1
23. Результат выполнения программы
VAR K, L: INTEGER; BEGIN К:=1; IF K>5 THEN L:=K+7 ELSE L:=K–1 WRITE (L) END. A) 5 B) 1 C) 0 D) 15
24. Результат выполнения программы
VAR A, B: INTEGER; BEGIN А:=1; В=0; IF A>B THEN WRITE ('А больше В') ELSE WRITE ('А меньше В') END. A) А больше В B) А меньше В C) 1 > 0 D) 0 < 1
25. Определите, что появится на экране после выполнения программы
VAR T: INTEGER; BEGIN Т:=7; IF T<=10 THEN WRITE ('Плохая погода') ELSE WRITE ('Хорошая погода') END. A) плохая погода
83
B) 'Хорошая погода' C) 'Плохая погода' D) Плохая погода
26. Результат выполнения программы
VAR X, Y: INTEGER; BEGIN Х: = –5; IF X>6 THEN Y:=10 ELSE Y:=15; WRITE(Y) A) 15 B) –5 C) 10 D) 5
27. Условию: если А>В или В=С, то В=1 соответствует запись
A) IF A>B=C THEN B:=l; B) IF A>C THEN B:=l; C) IF (A>B) OR (В=С) THEN B:=l; D) IF (A>B) AND (В=С) THEN B:=l;
28. Чтобы на экране появилось слово «ЕСТЬ» необходимо ввести значение переменной А, равное
VAR A: CHAR; BEGIN READ (A); IF A= 'M' THEN WRITE ('ЕСТЬ') ELSE WRITE ('НЕТ') END. A) А B) М C) ЕСТЬ D) НЕТ
29. Условию: если А>С, то В=1 соответствует строка
A) IF A>B=C THEN B=l B) IF A>C THEN B=1 C) IF A>B OR B=C THEN B=l D) IF A<C THEN B=1
30. Фрагмент программы
READ (A, B, C); IF A<B THEN N:=A ELSE N:=B; IF N<C THEN M:=N ELSE M:=C;
соответствует условию найти
A) минимальное из трех введенных чисел
84
B) максимальное из трех введенных чисел C) равные числа D) неравные числа
Ответы к тестовым заданиям №4
Вопрос
Ответ
Вопрос
Ответ
Вопрос
Ответ
1 B 11 А
21
B
2 С 12 Е
22
B
3
А,D
13 Е
23
С
4 B 14 Е
24
А
5 A 15 А
25
D
6 С 16 С
26
A
7 F 17 D
27
C
8 А 18 С
28
В
9 С 19 Е
29
В
10 В 20 A
30
А
85
5. Алгоритмы циклической структуры Операторы цикла
В языке Паскаль различают три вида операторов цикла: WHILE,
REPEAT, FOR. Выражение, управляющее повторениями, должно
иметь булевский тип.
Если число повторений оператора (составного оператора) заранее
неизвестно, а задано лишь условие его повторения (или окончания), используются операторы WHILE, REPEAT. Оператор FOR используется, если число повторений заранее известно.
Оператор цикла с параметром
Оператор повтора FOR состоит из заголовка и тела цикла. Он
может быть представлен в двух форматах:
FOR <параметр цикла> := <S1> TO <S2> DO <оператор>;
FOR <параметр цикла> := <S1> DOWNTO <S2> DO <оператор>;
где SI и S2 – выражения, определяющие соответственно начальное и конечное значения параметра цикла; FOR... DO – заголовок цикла; <оператор> – тело цикла.
Тело цикла может быть простым или составным оператором.
Если тело цикла составное, то его помещают между операторными скобками BEGIN и END. Оператор FOR обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного.
Наличие ключевого слова TO в заголовке оператора цикла с
параметром, говорит о том, что шаг изменения параметра цикла равен 1, следовательно, параметр возрастает, начальное значение параметра должно быть меньше конечного. Если в заголовке используется ключевое слово DOWNTO, то параметр убывает. В этом случае начальное значение параметра должно быть больше конечного.
Пример.
FOR I:=1 TO 100 DO WRITELN (I); {Печать чисел от 1 до 100} FOR I:=100 DOWNTO 1 DO WRITELN (I); {Печать чисел от 100 до 1}
Оператор цикла с предусловием
Часто встречаются задачи, когда число повторений в цикле неизвестно, а задано только некоторое условие его продолжения или окончания. Для программирования таких алгоритмов в Турбо Паскале
86
существуют два типа операторов – оператор цикла с предусловием (Цикл «Для») и оператор цикла с постусловием (Цикл «До»).
Оператор цикла с предусловием имеет следующий синтаксис:
WHILE <логическое выражение> DO <оператор>;
Внутренний <оператор> выполняется в цикле до тех пор, пока
условие продолжения цикла (<логическое выражение>) истинно. Если же <логическое выражение> становится ложным, то цикл прекращает функционировать и выполняется оператор, следующий за оператором While. Если условие продолжения цикла ложно с самого начала, то внутренний оператор не выполняется ни разу. Условие продолжения цикла вычисляется и анализируется перед каждым шагом выполнения цикла, отсюда и термин «предусловие». Если в теле цикла необходимо выполнять несколько операторов, то эту группу следует объединить в один составной оператор с помощью операторных скобок BEGIN и
END.
Оператор цикла с постусловием
Оператор цикла с постусловием имеет следующую структуру: REPEAT <оператор 1>; <оператор 2>; <оператор N> UNTIL <логическое выражение>;
Оператор или группа операторов, следующие после служебного
слова REPEAT (повторять), выполняются при входе в оператор цикла хотя бы один раз. И только после этого вычисляется булево выражение, следующее за служебным словом UNTIL (до тех пор пока). Если булево выражение имеет значение FALSE, оператор или группа операторов выполняется вновь, и так до тех пор, пока булево выражение не примет значение TRUE.
Пример 5.1. Определить средний рост студентов в группе. Для решения задачи в программе 5.1 использован цикл с
параметром, в 5.2 – цикл с предусловием, в 5.3 – цикл с постусловием.
87
PROGRAM PR5.1; {ЦИКЛ С ПАРАМЕТРОМ} USES CRT; VAR
N, S, I: INTEGER;
SSR: REAL;
BEGIN CLRSCR;
WRITE ('СТУДЕНТОВ В ГРУППЕ: '); READLN (N); S:=0; FOR I:=1 TO N DO
BEGIN
WRITE ('ВВЕДИТЕ СЛЕДУЮЩИЙ РОСТ
СТУДЕНТА – ');
READLN (ROST); S:=S+ROST
END;
SSR:=S/N;
WRITE (' SSR =', SSR:6:2); READKEY END.
88
PROGRAM PR5.2; {ЦИКЛ С ПРЕДУСЛОВИЕМ} USES CRT; VAR
N, S, I: INTEGER;
SSR: REAL; BEGIN CLRSCR;
WRITE ('СТУДЕНТОВ В ГРУППЕ: '); READLN (N);
S:=0;
I:=1;
WHILE I<=N DO
BEGIN
WRITE ('ВВЕДИТЕ РОСТ – '); READLN (ROST); S:=S+ROST; I:=I+1
END;
SSR:=S/N;
WRITE (' SSR =', SSR:6:2); READKEY END.
89
PROGRAM PR5.3; {ЦИКЛ С ПОСТУСЛОВИЕМ} USES CRT; VAR
N, S, I: INTEGER;
SSR: REAL; BEGIN CLRSCR;
WRITE ('СТУДЕНТОВ В ГРУППЕ: '); READLN (N);
S:=0;
I:=1;
REPEAT
WRITE ('ВВЕДИТЕ РОСТ – '); READLN (ROST); S:=S+ROST; I:=I+1
UNTIL I>N;
SSR:=S/N;
WRITE (' SSR =', SSR:6:2); READKEY END.
90
Вопросы для самоконтроля
1. Какие виды циклов существуют?
2. Нарисуйте N – S-диаграммы циклов
3. Что называют параметром цикла?
4. Что такое тело цикла?
5. Формат оператора цикла «Для».
6. Формат оператора цикла «Пока».
7. Формат оператора цикла «До».
8. Чем отличается цикл «Пока» от цикла «До».
Задания для самостоятельной работы
Для заданий 1–27 начертите N – S-диаграмму и напишите программу на языке TP.
1. Для заданных значений  и  вычислите 
(не
используя функцию возведения в степень), где – натуральное число.
2. Вычислите значения : 
  
3. Вычислите величины :

󰇛  󰇜󰇛  
󰇜


  󰇛
  󰇜
4. Вычислите значения функции для десяти вводимых
пользователем значений .

     󰇛󰇜󰇛
󰇜
5. Вычислите сумму вида:
 
 

6. Вычислите сумму вида:


7. Пусть дано  вещественных чисел, которые вводятся по
одному. Найдите количество положительных, отрицательных и нулевых чисел.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]