Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК. Информатика.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.37 Mб
Скачать

Контрольные вопросы

1. Как запустить интегрированную среду ТР7.0?

2. Какие команды содержит меню программы?

3. Какой командой надо воспользоваться для сохранени/открытия файла программы?

4. Какой командой запустить программу на компиляцию?

5. Какой командой запустить программу на выполнение?

6. Как выйти из среды ТР7.0?

7. Какие операторы языка Pascal организуют ввод/вывод данных?

8. Какие стандартные математические функции встроены в Pascal?

9. Каким типом надо описать числовую величину, если она может принимать только целые значения?

Задания для самостоятельного выполнения

1. Написать и отладить программу решения задачи указанного преподавателем варианта из таблицы 1.

2. Сохранить программу под именем LR14_3.pas.

3. Результат предъявить преподавателю.

4. Написать программу решения задачи указанного преподавателем варианта из таблицы 2 (дома).

Литература

Лабораторная работа №43.

Программирование разветвляющихся вычислительных процессов

Цель работы: научиться использовать условную конструкцию, оператор выбора для программирования разветвляющихся алгоритмов.

Основные сведения

Алгоритм называется разветвляющимся, если он содержит несколько ветвей, отличающихся друг от друга содержанием вычислений. Выход вычислительного процесса на ту или иную ветвь алгоритма определяется исходными данными задачи.

Перед выполнением работы необходимо ознакомиться с правилами записи логических выражений, операций сравнения, операторов IF, CASE.

УСЛОВНЫЙ ОПЕРАТОР IF

Условный оператор IF обеспечивает выполнение или невыполнение некоторого оператора в зависимости от заданных условий. Формат оператора IF:

ЕСЛИ <условие=ИСТИНА> ТО ВЫПОЛНИТЬ <оператор1>

ИНАЧЕ ВЫПОЛНИТЬ <оператор2>;

То же на языке Паскаль:

IF <условие=ИСТИНА> THEN <оператор1>

ELSE <оператор2>;

Обратите внимание: перед ELSE точка с запятой не ставится!!!

Пример:

IF Temp > 100 THEN Writeln('Вызывайте пожарных!');

ELSE Writeln('Все в порядке.');

В операторе IF вторая часть может отсутствовать:

IF <условие = ИСТИНА> THEN <оператор1>;

В этом случае, если условие ложно, оператор IF игнорируется и выполняется следующий за IF оператор.

Оператор IF используется в тех случаях, когда имеется два варианта действий в зависимости от какого-то условия.

ОПЕРАТОР ВЫБОРА CASE

Если надо выбрать более чем из двух альтернатив, используют оператор CASE. Он имеет следующий формат:

СASE <селектор> OF

<значение селектора> : <оператор1>;

<значение селектора> : <оператор2>;

. . .

<значение селектора> : <операторN>

ELSE <оператор>

END;

В качестве селектора могут служить переменные символьного и целочисленных типов. Данные типа real и string для селектора строго запрещены.

В зависимости от значения селектора выполняется соответствующий этому значению оператор.

Значения селектора могут быть заданы тремя способами:

перечислением: ~ 1, 3, 5, 7

диапазоном: ~ 'a' .. 'z'

перечислением+диапазоном:~ 1..5, 7, 9, 11, 21..31

Оператор CASE чрезвычайно удобен и часто используется программистами.

Примеры его использования на все случаи жизни:

CASE c селектором типа integer: CASE с селектором типа char

X:=2; Ch:='f';

CASE X OF CASE Ch OF

1,3,5:Write('Нечетное число'); '+','-','+','*' :Write('Операция');

2,4,6:Write('Четное число'); 'a'..'я','a'..'z':Write('с.Буква');

7..20:Write('Диапазон 7-20'); 'А'..'Я','A'..'Z':Write('п.Буква');

ELSE:Write('Вне диапазона 1..20') ELSE:Write('Не операция,не буква');

END; END;

Результат: Четное число Результат: с.Буква

Все другие операторы CASE строятся в полной аналогии с представленными.

Str:='Start'; ОШИБКА: в качестве селектора

CASE Str OF задана строка!!!

'Start':writeln('Старт системы!');

'Stop' :writeln('Остановить работу!');

END;

ПРИМЕР 1: Найти максимальную из двух величин а и в

А Л Г О Р И Т М

алг максимум двух

арг а,в: вещ

рез max: вещ

нач

ввод а,в

если а > в

то max: = a

иначе max: = в

все

вывод max

кон

П Р О Г Р А М М А

program maxsimum;

var a,b,m:real;

begin

writeln('Максимум двух чисел');

write ('Первое число ? ');

readln(a);

write ('Второе число ? ');

readln(b);

if a>=b then m:=a else m:=b;

writeln('a=',a:2:0,' b =',b:2:0);

writeln('max =',m:2:0);

end.

ПРИМЕР 2: Найти корни квадратного уравнения

А Л Г О Р И Т М

алг квадратное уравнение

арг а,в,c: вещ

рез x1,x2: вещ

нач

ввод а,в,c

если а = 0

то вывод "Уравнение не квадратное"

2

D:=b - 4*a*c

если D<0

то Вывод "Нет решений"

иначе х1:=(-b+ÖD)/(2*a)

х2:=(-b+ÖD)/(2*a)

вывод х1,х2

все

все

кон

П Р О Г Р А М М А

program uravnen;

m label;

var a,b,c,x,x1,x2,d:real;

begin

write('Введите коэффициенты ? ');readln(a);

if a=0 then begin writeln('Уравнение не квадратное');

goto m

end;

readln(b);

readln(c);

writeln('a= ',a,' b =',b,'c=',c);

d:=b*b-4*a*c;

if d<0 then writeln('Нет решений')

else begin

x1:=(-b+sqrt(d))/(2*a);

x2:=(-b-sqrt(d))/(2*a);

write('Решение: ');

wtiteln('x1= ',x1,'x2= ',x2);

end

m:end.

ПРИМЕР 3: Определить название столицы по названию

государства.

program capital;

var land,cap:string[20];

num:0..8;

begin

writeln('Определяем название столицы');

writeln('Введите название страны');

readln(land);

num:=0; {номер страны в списке}

if land='Австрия' then num:=1; if land='Болгария'then num:=2;

if land='Греция' then num:=3; if land='Италия' then num:=4;

if land='Норвегия' then num:=5; if land='Франция' then num:=6;

if land='США' then num:=7; if land='Россия' then num:=8;

case num of {определение столицы по номеру страны в списке }

1:cap:='Вена'; 2:cap:='София';

3:cap:='Афины'; 4:cap:='Рим';

5:cap:='Осло'; 6:cap:='Париж';

7:cap:='Вашингтон'; 8:cap:='Москва';

0:cap:='Такой страны не знаю'

end;

writeln(cap);

readln;

end.