- •Информатика. Алгоритмизация
- •Алматы 2009
- •1 Лабораторная работа 1. Создание линейного алгоритма
- •1.1 Составление линейного алгоритма и программы
- •1.2 Варианты заданий и контрольные вопросы
- •Контрольные вопросы
- •2 Лабораторная работа 2. Разветвленный алгоритм. Повторения
- •2.1 Создание разветвленного алгоритма и программы
- •2.2 Варианты заданий и контрольные вопросы
- •Контрольные вопросы
- •3 Лабораторная работа 3. Алгоритм с оператором выбора
- •3.1 Создание алгоритма с оператором выбора
- •3.2 Задания и контрольные вопросы
- •Контрольные вопросы
- •4 Лабораторная работа 4. Циклические алгоритмы
- •4.1 Создание циклических алгоритмов и программ
- •4.2 Задания и контрольные вопросы
- •5 Лабораторная работа 5. Применение циклических алгоритмов
- •5.1 Применение циклов
- •5.2 Задания и контрольные вопросы
- •6 Лабораторная работа 6. Подпрограмма – функция
- •6.1 Создание подпрограмм - функций
- •6.2 Задания и контрольные вопросы
- •7 Лабораторная работа 7. Символьная и строковая информации
- •7.1 Обработка символов
- •7.2 Варианты заданий и контрольные задания
- •Приложение a Элементы блок – схем и клавиатура
- •Клавиатура
- •Приложение б Структура программы и встроенные функции
- •Приложение в Основные элементы языка Turbo Pascal
- •Часто встречающиеся ошибки в программах
- •Список литературы
- •Содержание
- •Информатика. Алгоритмизация
1.2 Варианты заданий и контрольные вопросы
Составьте блок-схему и программу вычисления выражения. Вычислите его при указанных значениях аргументов, и проверьте результат с помощью калькулятора или Excel. Повторите вычисления при произвольных значениях аргументов. Все результаты запишите в отчет по образцу, показанному на рисунке 1.2.
|
|
Program lin_algoritm; Uses Crt; Var A, X, Y, {входные и выходные переменные} S1, S2, S3, S4 : real; {переменные для промежуточных результатов} Begin ClrScr; Write (' Vvedite A -> '); Readln (A); Write (' Vvedite X -> '); Readln (x); S1:=2*Sqrt(A*A+Sqr(X)); S2:=2.5*Sin(A+X)/Cos(A+X); S3:=Ln(A+x); S4:=Sin(x)+Cos(A)*Cos(A); Y:=S1+(S2-S3)/S4; Writeln (' Otvet Y=',Y:10:3); Readln; End. {Конец программы}
Результат работы программы
|
|
Рисунок 1.2 - Блок-схема и программа линейного алгоритма | |
Варианты заданий
|
1)
|
2)
|
|
3)
|
4) |
|
5) |
6)
|
|
7) |
8)
|
|
9)
|
10)
|
|
11)
|
12)
|
|
13)
|
14)
|
|
15)
|
16)
|
|
17)
|
18)
|
|
19)
|
20)
|
|
21)
|
22)
|
Контрольные вопросы
Дайте определение алгоритму. Назовите его основные свойства.
Какой алгоритм называется линейным?
Что такое блок-схема? Назовите элементы блок-схемы.
Опишите структуру программы.
Назовите типы данных, используемые в Pascal?
Расскажите о форматном и бесформатном выводе в Pascal?
Как записываются арифметические выражения?
Как вычислить функции tgx,ctgx,lgx?
Какая разница между операторами Writeln(Х) иWrite(Х).
Если х=3.14151785, что выведет на экран оператор Writeln(‘X=’ ,X:8:5)
Если х=3.14151785, что выведет на экран оператор Write(‘X=’ ,X:8:5)
2 Лабораторная работа 2. Разветвленный алгоритм. Повторения
Цель работы – создание алгоритмов разветвленной структуры и цикла.
2.1 Создание разветвленного алгоритма и программы
2.1.1 Разветвленный алгоритм
Ветвящимся (разветвленным)называется алгоритм, в котором в зависимости от вычисления некоторого условия далее алгоритм продолжается по одному из двух или из нескольких заранее предусмотренныхветвей. На рисунке 2.1 показана блок – схема ветвления. Для реализации ветвления используются два оператораIf илиCase.
П
ример
записи условного оператора для вычисления
функции
If (x<0) then y:=Cos(x) else y:=0;.
Внимание! Условный оператор является одним выражением, поэтому точка с запятой перед else не ставится.
Если в операторе If ветвь than или ветвь else отсутствует, то ветвление называют неполным. При наличии обоих ветвей ветвление называют полным.
Для составленияусловий используются логические функции и отношения, приведенные в приложении В. Результат вычисления условия является логическим типом и может принимать одно из двух значенийtrue(истина) илиfalse(ложь). На блок-схеме пишут соответственноДа иНет.
If ((X>=2) and ((X<=5)) - здесь условие истинно, если одновременно выполняются оба отношения, то есть Х лежит в пределах от 2 до 5.
If ((X<2) or ((Y>5)) - здесь условие истинно, если выполняется хотя бы одно отношение: либо Х < 2, либо Y > 5 или Х <2 и Y >5 одновременно.
В линейном алгоритме порядок выполнения операторов соответствует их записи в программе. Если необходимо нарушить этот порядок, то используется оператор безусловного перехода Goto metka, который в блок-схеме отображается в виде стрелки. Метка, используемая в операторе, показывает, что дальнейшая работа должна проводиться в другой части программы, с той строки, которая обозначена как metka. Метка должна быть описана в разделе Label.
Внимание! После метки в тексте программы ставится двоеточие.
Оператор Goto может применяться для повторений (циклов) выполнения какой-либо части программы. Количество повторений и номер повторения контролируют переменными целого типа, например integer. Ниже приведен фрагмент такой программы.
|
i:=1; {i – номер повторения} N:=5; {N – количество повторений} Metka1: {Ставим двоеточие после метки} Writeln (‘ Nomer povtoreniya ’, i); i:=i+1; If (i<=N) then Goto Metka1; |
Результат работы этого фрагмента: Nomer povtoreniya 1 Nomer povtoreniya 2 Nomer povtoreniya 3 Nomer povtoreniya 4 Nomer povtoreniya 5. |
2.1.2 Пример создания алгоритма разветвленной структуры
В
ычислить
разрывную функцию
для значений Х равных -2, 0, 0.5, 1,
.
Алгоритм представлен на рисунке 2.2.
Program vetvlenie;
Uses crt; Label Metka1;
Var i, N: integer;
x, y: real;
Begin
ClrScr;
N:=5; i:=1;
Metka1:
Write (' Vvedi X -> ');
Readln (X);
if (x<0) then y:=exp(x);
if ((x>=0) and (x<=1))
then y:=0;
if (x>1) then y:=sin (x);
writeln (' Otvet Y=' , y:10:3);
i:=i+1;
if (i<=N) then goto Metka1;
end.
В программе N – количество повторений, i – номер повторения. Все ветвления в программе выполнены неполными, так как ветвь else отсутствует.
Результат работы программы показан на рисунке 2.3.
|
Рисунок 2.3 - Результат |
Вывод значения переменной Y выполнен форматированным: выделено 10 знакомест, причем три из них отводятся для вывода дробной части числа. Для повторения части программы (цикла) применен оператор goto. Результат работы программы скопирован с экрана клавишей Print Screen и обработан в графическом редакторе. |


.
,
вычислить
при a=1,
b=10
(P=0.5).