Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика1 / мет_Паскаль_ч3.doc
Скачиваний:
21
Добавлен:
25.04.2015
Размер:
428.03 Кб
Скачать

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 - Блок-схема алгоритма и программа разветвленной структуры

      1. В старояпонском календаре принят 60-летний цикл, состоящий из пяти 12-летних малых циклов. Малые циклы обозначаются названиями цвета. Внутри каждого малого цикла годы носят названия животных. Определить название заданного года нашей эры по японскому календарю. Так как в данном случае блок-схема получается достаточно громоздкой, ниже приведена только программа решения задачи.

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 Составить программу решения задачи, используя оператор выбора

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

  2. Определить знаки координат точки по вводимому номеру квадранта. В случае если пользователь укажет недопустимый номер, повторить попытку ввода.

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

  4. Вводится ответ на вопрос "Язык общения? русский (р) / английский (а)". Если введено "р", то вывести "Привет!", если введено "а", то вывести "Hello!". В остальных случаях вывести "Повторите ввод".

  5. Вводится ответ на вопрос "Продолжить работу? да (1) / нет (0)". Если введено "1", то вывести "Я готов к работе", если введено "0", то вывести "Работа завершена".

  6. Вводится целое число. Если введено "1", то вывести "понедельник". Если введено "2", то вывести "вторник" и т.д. В остальных случаях - "Повторите попытку ввода".

  7. Вводится целое число от 2 до 5. Если введено "2", то вывести "неудовлетворительно". Если введено "3", то вывести "удовлетворительно" и т.д. В остальных случаях - "Такой оценки не существует".

  8. Вводится символ. Если этот символ равен "***", то вывести "Осадки в виде снега". Если - ":::", то - "Осадки в виде дождя". В остальных случаях - "Безоблачно".

  9. Ввести целое число. Если введено "0", то вывести "незачет", если введено "1", то вывести "зачет". В остальных случаях вывести "Повторите ввод".

  10. По вводимому номеру вывести название ноты: 1-"до", 2-"ре", 3-"ми", 4-"фа", 5-"соль", 6-"ля", 7-"си". В остальных случаях - "Нота не определена".

  11. По вводимому номеру вывести название цвета: 1-"красный", 2-"оранжевый", 3-"желтый", 4-"зеленый", 5-"голубой", 6-"синий", 7-"фиолетовый". В остальных случаях - "Цвет не определен".

  12. По вводимому номеру вывести название времени года: 1-"зима", 2-"весна", 3-"лето", 4-"осень". В остальных случаях - "Время года не определено".

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

  14. Вводится целое число от 1 до 10. Если введено "1", то вывести "Средний возраст учеников - 7 лет". Если введено "2", то вывести "Средний возраст учеников - 8 лет" и т.д.

  15. Даны два числа. Ввести целое число n. Если n=1, то найти минимум этих двух чисел. Если n=2, то найти максимум этих чисел. В остальных случаях повторить ввод n.

  16. Вводится символ. Если этот символ равен "я", то вывести "январь". Если - "ф", то - "февраль". Если - "д", то - "декабрь". В остальных случаях - "Зимний месяц не определен".

  17. Вводится символ. Если этот символ равен "с", то вывести "сентябрь". Если - "о", то - "октябрь". Если - "н", то - "ноябрь". В остальных случаях - "Осенний месяц не определен".

  18. Вводится целое число n (1n5), выводится n звездочек (*). В остальных случаях повторить ввод n.

  19. По вводимому значению n (1n5) вывести наименование геометрической фигуры 1-"точка", 2-"прямая", 3-"треугольник", 4-"квадрат", 5-"пентагон". В остальных случаях повторить ввод n.

  20. Дано натуральное число n (1n10). Вывести фразу "Мы нашли n грибов (гриб, гриба), используя правильный падеж существительного "гриб".

  21. По вводимому номеру вывести название дня недели 1-"понедельник", 2-"вторник", 3-"среда", 4-"четверг", 5-"пятница", 6-"суббота", 7-"воскресенье". В остальных случаях повторить попытку ввода.

  22. По вводимому номеру вывести наименование пальцев руки 1-"мизинец", 2-"безымянный", 3-"средний", 4-"указательный", 5-"большой". В остальных случаях повторить попытку ввода.

  23. По вводимому номеру вывести результаты спортивных соревнований 1-"золотая медаль", 2-"серебряная медаль", 3-"бронзовая медаль", 4-"утешительный приз". В остальных случаях повторить попытку ввода.

  24. По вводимому номеру вывести наименование типов темперамента 1-"сангвиник", 2-"флегматик", 3-"меланхолик", 4-"холерик". В остальных случаях повторить попытку ввода.

  25. По вводимому номеру вывести наименование пяти чувств 1-"зрение", 2-"слух", 3-"обоняние", 4-"осязание", 5-"вкус". В остальных случаях повторить попытку ввода.

  26. В зависимости от количества участников вывести название музыкальных ансамблей 1-"соло", 2-"дуэт", 3-"трио", 4-"квартет", 5-"квинтет", 6-"сикстет", 7-"октет". В остальных случаях повторить попытку ввода.

  27. По вводимому номеру вывести наименование одного из факультетов АИЭС 1-"ТЭФ", 2-"ЭЭФ", 3-"ФРТС", 4-"ФЗО и ПС", 5-"ФДП". В остальных случаях повторить попытку ввода.

  28. Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день", "Суббота" или "Воскресенье". Если пользователь укажет недопустимый номер, то повторить попытку ввода.

  29. Написать программу, которая подводит итоги экзамена. При вводе кода 0 вывести "неявка"; 1 - "неудовлетворительно"; 2,3,4 -"удовлетворительно"; 5,6,7 - "хорошо"; 8,9 -"отлично"; 10 -"не допущен". В случае если пользователь укажет недопустимый номер, то повторить попытку ввода.

  30. Дано натуральное число n (1  n  10). Вывести фразу "n рублей (рубль, рубля), используя правильный падеж существительного "рубль".

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 и следующие ограничения: