- •Информатика. Алгоритмизация
- •Алматы 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) , вычислить приx=0, y=1 (P=-0.333). |
2) , вычислить при a=2, b=3 (P=-0.2). |
3) , вычислить при x=1, y=1 (Z=0.5). |
4), вычислить при a=2, b=4 (P=2). |
5) , вычислить при a=5, x=5 (Y=10). |
6) , вычислить при x=4, y=3 (Z=3). |
7) . вычислить при х =,a=5 (y=-1). |
8) , вычислить при a=1, b=10 (P=0.5). |
9) , вычислить при x =9 (Y=10). |
10) , вычислить при a= /2,x=2 (P=-2). |
11) , вычислить при a= /2,x=5,5, y=4,5 (Z=1.09). |
12) , вычислить при x= ,a=10, b=3 (Y=2). |
13) , вычислить при x=10, y=1 (Z=1). |
14) , вычислить при a= ,y=3, x=2 (Z=0). |
15) , вычислить при a= ,x=4, b=1 (P=2). |
16) , вычислить при a= ,x=6, y=1 (Z=3). |
17) , вычислить приx=,y=5 (P=-0.5). |
18) , вычислить при a=5; b=4 (Y=1). |
19) , вычислить при x=,a=3, b=0,5 (y=0.25). |
20) , вычислить при x=;a=3; b=11 (P=-3.5). |
21) , вычислить при x=; a=0,5; b=10 (Y=0.5). |
22) , вычислить при x=;a=0,5; b=0 (Y=0.2). |
Контрольные вопросы
Дайте определение алгоритму. Назовите его основные свойства.
Какой алгоритм называется линейным?
Что такое блок-схема? Назовите элементы блок-схемы.
Опишите структуру программы.
Назовите типы данных, используемые в 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 и обработан в графическом редакторе. |