Линейные алгоритмы. Примеры решения задач школьного курса с помощью линейных алгоритмов

Информатика и ИКТ, группа № 13

Урок № 49

Тема: Операторы ввода и вывода. Практическая работа № 8 «Программирование линейных алгоритмов»

Теоретический материал

Составной оператор (операторские скобки)

Для того чтобы задать последовательное выполнение (по порядку, один за другим) нескольких операторов, в языке Pascal существует составной оператор. Операторы, входящие в составной, разделяются символом «;», в начале ставится служебное слово begin, в конце - end.

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

begin

х:=10; у:=5; Z:=l;

writeln(*q=', sqr(x)+sqr(у)+sqr(z))

end

Язык Turbo Pascal не накладывает никаких ограничений на харак­тер операторов, входящих в составной оператор. Среди них могут быть и другие составные операторы - Turbo Pascal допускает произвольную глубину их вложенности:

begin

begin begin

end;

end;

end;

Фактически весь раздел операторов, обрамленный словами Ье-... end, представляет собой один составной оператор.

Внимание: Перед служебным словом end разделитель (символ «;») не ставится.

2. Процедуры ввода и вывода. Для того чтобы программа могла работать в диалоговом режиме (позволяла бы вводить данные и видеть результаты работы на экране), существуют процедуры ввода и вывода. Существует две формы процедуры ввода:

read и readln:

read (xl, х2, хЗ...);

Процедура read обеспечивает ввод данных разных типов с клавиатуры. В скобках указываются имена переменных, которым присвоятся введенные значения. При вводе нескольких значений с помощью одной процедуры, они разделяются символом «пробел». Для оконча­ния ввода (завершения работы одной процедуры read) нажимается кла­виша <Enter>. Если же в программе есть несколько подряд идущих процедур read, то данные вводятся потоком, т.е. без нажатия <Enter>:

read (xl, х2, хЗ...);

Процедура readln аналогична предыдущей, отличие заключается в том, что ПОСЛЕ выполнения процедуры readln курсор на экране монитора переходит на новую строку.

Примеры

read(а);

read (a, b, с);

readln{x,у).

Аналогично существует две формы процедуры вывода:

write (xl, x2, хЗ...);

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

Х:=5;

write('х=', х);

Результат выполнения этих процедур:

х=5;

writeln (xl, x2, хЗ...);

Процедура writeln аналогична процедуре write, отличие заключается в том, что ПОСЛЕ выполнения процедуры writeln курсор переходит на одну строку вниз. Процедура writeln может использоваться без каких-либо параметров - в этом случае после выполнения такой процедуры курсор просто перемещается на одну позицию вниз, гак, например, выполнение последовательности команд:

writeln; writeln; writeln; writeln; writeln;

приведет к тому, что курсор опустится на пять строк вниз.

Примеры

writeln('Hello, World!'); write{(а=',а, ' b=',b,' c=',c);

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

х:=4; у:=3; writeln(* Значение выражения = ',x+sqr(y));

получим на экране монитора следующее сообщение:

«Значение выражения = 13»

В процедурах вывода write и writeln имеется возможность установить ширину поля вывода.

Если х, i и j — целочисленные переменные, а у — вещественная переменная, то вызов wr i te (x: i, у: i) печатает значения х и у каждое в крайние правые позиции нолей шириной i.

Вызовом write (у: i: j) в крайние правые позиции поля шириной i символов выводится десятичное представление значения у в формате с фиксированной точкой, причем после десятичной точки выводится j цифр, представляющих дробную часть числа. |

Практическая работа № 8 «Программирование линейных алгоритмов»

 

Цель: сформировать умения оставления программ с использованием линейной структуры.

1.определите тип величины

Буква латинского алфавита

Количество бактерий

 

2. определите, к какой из частей программы относится данный фрагмент

Begin

S:=5+7;

End.

Program sum;

Var s:byte;

 

3. Дана некоторая величина площадь пола комнаты равная 48м2. Определите

Значение

Тип

 

4.Данная программа находит площадь прямоугольника. Найдите ошибки и исправьте их.

Program ploshad;

Var a,b,s: real;

Begin;

Write (‘введите ширину - ’)

Readln(a);

Write (‘введите длину – ‘)

Readln(b);

S:=a/b;

Writeln (‘площадь прямоугольника – ‘, s);

End

 

5. запишите команду присваивания переменной x значения выражения

Х:=____________________________________________

6. Составьте программу для вычисления площади круга (число π=3,14).

 

Домашнее задание: выучить теоретический материал, выполнить практическую работу.

 

 

Урок № 50

Тема: Решение задач на составление линейных алгоритмов.

Линейные алгоритмы. Примеры решения задач школьного курса с помощью линейных алгоритмов

Алгоритмизация – процесс разработки алгоритма (плана действий) для решения задачи. Алгоритм называется линейным, если все его действия выполняются последовательно друг за другом от начала и до конца. Блок-схемой называется наглядное графическое изображение алгоритма, когда отдельные его действия (этапы) изображаются при помощи различных геометрических фигур (блоков), а связи между этапами указываются при помощи стрелок, соединяющих эти фигуры.

Решение задачи на компьютере — это процесс автоматического преобразования исходных данных в искомый результат в соответствии с заданным алгоритмом.

Поэтому перед решением задачи на компьютере, она должна пройти некоторые этапы подготовки.

Этапы решения задач на компьютере.

1) Постановка задачи — необходимо четко определить цель задачи, дать словесное описание содержания задачи, выделить исходные данные для ее решения. Предложить общий подход к её решению, определиться какие результаты и в каком виде должны быть получены.

2) Построение математической модели — представление ее в виде формул, уравнений, соотношений, которые могут быть реализованы в компьютере.

3) Алгоритмизация — построение алгоритма.

4) Составление сценария работы на компьютере (этот этап мы пока будем опускать).

5) Написание задачи на языке программирования.

Программа должна быть универсальной (не зависящей от конкретного набора данных). Необходимо предусмотреть контроль вводимых данных. Необходимо повысить эффективность программы, т. е. уменьшить количество выполняемых операций и время работы программы.

6) Отладка и тестирование программы.

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

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

Отладка — это исправление ошибок — сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на составленных контрольных тестах.

7) Анализ полученных результатов.

Рассмотрим эти этапы на примере следующей задачи.

Задача. «Покупка в мазазине»

Человек делает в магазине покупки. Определите сколько денег у него останется после покупки в магазине перчаток стоимостью А руб., портфеля стоимостью B руб. и галстука стоимостью D руб. Все исходные данные задаются с клавиатуры.

1 этап. Постановка задачи

Исходные данные.

a — стоимость перчаток;

b — стоимость портфеля;

d — стоимост галстука;

dengi — количество денег у человека.

Все эти переменные будут вещественного типа.

Результат.

ostatok — количество денег, которое останется у человек (вещественный тип).

2 этап. Построение математической модели (метод решения)

ostatok = dengi – a – b – d

3 этап. Алгоритмизация.

4 этап. Написание программы.

Program pokupka; Uses crt; Var a, b, d, den: real; ostatok: real; begin clrscr; write ('введите стоимость перчаток, портфеля и галстука '); readln (a, b, d); write ('введите количество имеющихся у вас денег '); readln (den); oststok:= den – a – b – c; writeln ('после покупки у вас останется ', ostatok:5:2, 'руб. '); readln; end.

 

5 этап. Тест.

a = 500; b = 450; d = 320

den = 1700

ostatok = 1700 – 500 – 450 – 320 = 430

Набираем программу на компьютере и запускаем с данными заданными в тесте.

6 этап. Анализируем результат.

Решение задач

1) Даны длины сторон треугольника A, B, C. Найти площадь треугольника S. Составьте блок-схему алгоритма решения поставленной задачи.

2) Даны координаты вершин треугольника АВС. Найти его площадь. Составьте блок-схему алгоритма решения поставленной задачи.

3) В квадратной комнате шириной A и высотой B есть окно и дверь с размерами C на D и M на N соответственно. Вычислите площадь стен для оклеивания их обоями. Составьте блок-схему алгоритма решения поставленной задачи.

4) Дана величина A, выражающая объем информации в байтах. Перевести А в более крупные единицы измерения информации. Составьте блок-схему алгоритма решения поставленной задачи.

5) Вычислить путь, пройденный лодкой, если ее скорость в стоячей воде v км/ч, скорость течения реки v1 км/ч, время движения по озеру t1 ч, а против течения реки – t2 ч. Составьте блок-схему алгоритма решения поставленной задачи.

6) Вычислите значение функции Y при X=2, используя блок-схему алгоритма. Y = 2 РЕШЕНИЕ: 1. X = 2 2. Z = 8 * 2 = 16 3. Z = = 4 4. Z = 4 – 1 = 3 5. Y = 3 * 2 = 6 6. Y = 6 / 3 = 2

Домашнее задание: проработать теоретический материал и решить задачи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow