Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программное.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
220.67 Кб
Скачать

2 Задание № 2. Тема: «Программирование алгоритмов ветвящейся структуры»

Цель: - изучить операторы перехода языка программирования

- сформировать умения и навыки программирования разветвляющихся вычислительных процессов;

- сформировать навыки изображения алгоритма программы в виде схемы.

Основы теории

Простые операторы

Операторы, не содержащие в себе никаких других операторов, называются простыми.

Оператор присваивания (:=)

Этот оператор предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор, который расположен в левой части.

Формат:  <идентификатор>:=<выражение>;

Пример:

Sort:=1;

Result:=Sin(A)+Cos(B)

 

 Goto М; безусловный оператор, используется для перехода в программе на оператор с меткой М. Метка должна быть описана в разделе описаний, например:

Label m1;

…..

m1: a:=2;

….

Goto m1;

........

Оператор вызова процедуры состоит из идентификатора, непосредственно за которым распологается в круглых скобках список фактических параметров. Оператор процедуры без параметров состоит только из идентификатора процедуры, например: sin(x), random.

Выполнение оператора процедуры приводит к активизации действий, описанных в её теле.

Структурные операторы

Структурные операторы представляют собой структуры, построенные из других операторов по строго определенным правилам.

Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end.

Формат:

begin

<оператор>

............

<оператор>

end:

Пример:

begin

A:=A*B+(N-D);

Rez:=A+B*Pi;

writeln(Rez:12:6);

end;

 

Оператор условия обеспечивает выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий

Pascal допускает использование двух условных операторов: if и case.

Оператор условия if может принимать одну из следующих форм:

if B then S1 else S2; - если условие B выполняется( т.е. принимает значение TRUE), то выполняется оператор S1, иначе (т.е. B равно FALSE) выполняется оператор S2.

if B then S1; - если условие B равно TRUE, то выполняется оператор S1 , иначе никаких действий не производится и управление передается следующему за if оператору.

Рисунок 2.1 Схема действия оператора if B then S1 else S2.

if B then S1; - если условие B равно TRUE, то выполняется оператор S1 , иначе никаких действий не производится и управление передается следующему за if оператору.

Рисунок 2.2 Схема действия оператора if B then S1.

B-это выражение булевского типа. S1,S2,S- простые или составные операторы.

Пример:

A:=2;

B:=8;

if A>B then writeln ( A больше B ‘)

else writeln (‘ A меньше B ‘); 

Один оператор if может входить в состав другого оператора if. В таком случае говорят о вложенности операторов:

if B1 then

if B2 then S1

else S2;

B1,B2-это выражениe булевского типа. S1,S2- простые или составные операторы.

При вложенности операторов каждое else соответствует тому then, которое непосредственно ему предшествует.

Пример:

if A<B then

begin

writeln( ‘A<B ‘);

D:=A*B;

end

else

begin

writeln(‘ A>=B ‘);

D:=A/B;

end;

Оператор выбора case является обобщением оператора if и позволяет сделать выбор из произвольного числа имеющихся вариантов в зависимости от ключа выбора. Как и в операторе if здесь может присутствовать слово else, имеющее тот же смысл.

Формат:

Case N of

M1: S1;

……

Mi : Si

Else S

End;

Здесь

N- переменная или выражение, именуемое переключателем варианта;

M1,…,Mi- значения (константы) переключателя, называемые его меткамиж

S1,…,Si - простые или составные операторы;

S- совокупность операторов.

Пример:

Case (K+1) *z of

1..10 : begin end;

2 : Add (A, B);

11..15 : begin end;

4 : Multiply (A, B);

0 : Subtract (A, B);

else end;

Writen ( Ошибка! );

end;

 

 

Переключатель и его метки могут быть любого порядкового типа.Переключатель и его метки обязательно должны совпадать по типу.

Метки переключателя являются внутренними метками оператора Case и не должны описываться в разделе описаний Label основной программы.

Перед выполнением оператора Case значение переключателя должно быть определено. Case передает управление тому оператору из S1,…,Si, значение метки которого совпадет со значением переключателя. Если значение переключателя не совпадает ни с одним значением меток S1,…,Si, то управление передается оператору S.

Рисунок 2.3 – Схема действия оператора case

ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ

Задание №2

Задача 1.

1Даны 3 различных действительных числа X,Y,Z. Если их сумма меньше 1, то наименьшее из них заменить полусуммой двух других, в противном случае заменить наименьшее из X иY полусуммой двух оставшихся.

2 Даны действительные числа X,Y. Если X,Y- отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательны и ни одно из них не принадлежит отрезку [0.5,2], то оба значения уменьшить в 10 раз; в остальных случаях X и Y оставить без изменения.

3 Определить в какую четверть координатной плоскости попала точка с координатами (X,Y). Переменной N присвоить номер четверти. Если точка попала в начало координат, то N=0. Если точка попала на ось или , то напечатать сообщение об этом.

4 Даны числа A1,B1,C1,A2,B2,C2. Напечатать координаты точек пересечения прямых: A1x+B1y=C1 и A2x+B2y=C2, либо сообщить, что эти прямые совпадают, не пересекаются или вовсе отсутствуют.

5 Даны действительные числа A,B,C,D,S,T,U(S,T одновременно не равны нулю). Определить, лежат ли точки (A,B) и (C,D) на прямой, заданной уравнением Sx+Ty +U=0. Если нет, то выяснить принадлежат ли они разным полуплоскостям.

6 Для целого числа К от 1 до 99 напечатать фразу «мне К лет», учитывая при этом, что при некоторых значениях, К слово «лет» надо заменить на слово «год» или «года».

7 Даны действительные числа x,y,z. Получить разность между максимальным и минимальным из этих чисел.

8 Даны натуральные числа А,В, С, которые обозначают число, месяц и год. Получить тройку чисел, соответствующую следующему дню.

9 Даны тройки чисел A1,B1,C1 и A2,B2,C2 , которые обозначают две даты. Вычислить количество дней, прошедших между этими датами.

10 Даны тройки чисел A1,B1,C1 и A2,B2,C2 , которые обозначают две даты. Вычислить количество полных лет, прошедших между этими датами.

11 Даны числа A,B,C, которые обозначают дату. Определить количество дней, прошедших с начала года.

12 Написать программу, которая вводит номер года нашей эры и печатает его название по старояпонскому календарю. В старояпонском календаре года носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 год – год зеленой крысы был началом очередного цикла).

13 Написать программу, которая по введенной дате рождения выводит название знака зодиака, соответствующее введенной дате по гороскопу.

14 Даны тройки чисел A1,B1,C1 и A2,B2,C2 , которые обозначают две даты. Определить какая дата более ранняя. Если даты равны вывести об этом сообщение.

15 Даны произвольные числа a,b,c. Выяснить существует ли треугольник с такими длинами сторон. Если треугольник существует, то определить является ли он равносторонним ил каким-либо иным.