Перейти к контенту
Написать программу на языке Паскаль по заданной блок-схеме
Задание:
Определите значение переменной a и b после выполнения фрагмента алгоритма:
В данном уроке задача решается в два этапа: сначала помощью таблицы, затем на языке программирования Паскаль.
a | b | a < b | ход решения | a | b |
25 | 16 | нет |
a:= 25 — 4 b:= 16 + 2 |
21 | 18 |
21 | 18 | нет |
a:= 21 — 4 b:= 18 + 2 |
17 | 20 |
17 | 20 | да | a:= 20 — 1 | 19 | 20 |
Таким образом, переменная a = 19, переменная b = 20
Запишем с помощью языка программирования «Паскаль» программу для решения задачи по блок-схеме:
Program block_schema;
var
a,b:integer;
begin
a:=25;
b:=16;
repeat
a:= a - 4;
b:= b + 2;
until
a < b;
a:=b-1;
writeln('a= ',a);
writeln('b= ',b);
end.
Оператор цикла с постусловием repeat.
В данной программе используется оператор цикла с постусловием repeat.
Repeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.Между словами REPEAT (повторить) и UNTIL(до тех пор, пока) можно записать любое количество операторов без использования операторных скобок.
В отличие от оператора WHILE вычисление логического выражения происходит не до, а после очередного повторения цикла. Из-за этого цикл REPEAT обязательно выполнится хотя бы раз, а цикл WHILE может не выполнится ни разу. Если условие в цикле ПОКА является условием продолжения повторений, то условие в цикле ДО — условием выхода из цикла, его завершения. Поэтому для одной и той же задачи эти условия противоположны.
Выполняется группа операторов до тех пор, пока не будет выполнено условие a < b.
Итак, опустив долгие и нудные восхваления Паскаля, которые так любят публиковать в своих статьях редакторы многих сайтов, приступим непосредственно к самому основному – к программированию.
В школах, как правило, изучение Паскаля начинают с решения простейших задач путем составления различных алгоритмов или блок-схем, которое многие так часто игнорируют, считая никому не нужной ерундой. А зря. Я, как и любой другой человек, хоть немного соображающий в программировании (не важно где – в Паскале, Си, Дельфи), могу уверить Вас – умение правильно и быстро составлять схемы является фундаментом, основой программирования.
Блок-схема — графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и т.д.).
Существует несколько основных видов блоков, которые нетрудно запомнить:
Сегодняшний урок я решила посвятить не только изучению блок-схем, но также и изучению линейных алгоритмов. Как Вы помните, линейный алгоритм — наипростейший вид алгоритма. Его главная особенность в том, что он не содержит никаких особенностей. Как раз это и делает работу с ним простой и приятной.
Задача №1: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».
Данная задача не должна представлять особой трудности, так как построена она на хорошо известных всем нам формулах расчета площади и периметра прямоугольника, поэтому зацикливаться на выведении этих формул мы не будем.
Составим алгоритм решения подобных задач:
1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано». (В задаче №1 к известным переменным относятся стороны: a, b ;к неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b))
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.
Запишем условие в более кратком виде.
Дано: a, b
Найти: S, P
Блок-схема:
Структура программы, решающей данную задачу, тоже проста:
- 1) Описание переменных;
- 2) Ввод значений сторон прямоугольника;
- 3) Расчет площади прямоугольника;
- 4) Расчет периметра прямоугольника;
- 5) Вывод значений площади и периметра;
- 6) Конец.
А вот и решение:
Program Rectangle; Var a, b, S, P: integer; Begin write('Введите стороны прямоугольника!'); readln(a, b); S:=a*b; P:=2*(a+b); writeln('Площадь прямоугольника: ', S); write('Периметр прямоугольника: ', P); End.
Задача №2: Скорость первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2, T и S задаются с клавиатуры.
Решение осуществляем, опять же, следуя алгоритму. Прочитав текст, мы переходим к следующему пункту. Как и во всех физических или математических задачах, это запись условий задачи:
Дано: V1, V2, S, Т
Найти: S1
Далее идет самая главная и в то же время самая интересная часть нашего решения – составление нужных нам формул. Как правило, на начальных стадиях обучения все необходимые формулы хорошо нам известны и взяты из других технических дисциплин (например, на нахождение площади различных фигур, на нахождение скорости, расстояния и т.п.).
Формула, используемая для решения нашей задачи, выглядит следующим образом:
S1=(V1+V2)*T+S
Следующий пункт алгоритма – блок-схема:
А также решение, записанное в Pascal :
Program Rasstoyanie; Var V1, V2, S, T, S1: integer; {Ввод } begin write('Введите скорость первого автомобиля: '); readln(V1); write('Введите скорость второго автомобиля: '); readln(V2); write('Введите время: '); readln(T); write('Введите расстояние между автомобилями: '); readln(S); S1:=(V1+V2)*T+S; writeln('Через ', t,'ч. расстояние ', S1,' км.'); End.
Вам может показаться, что две эти программы правильны, но это не так. Ведь сторона треугольника может быть 4.5, а не 4, а скорость машины не обязательно круглое число! А Integer — это только целые числа. Поэтому при попытке написать во второй программе другие числа выскакивает ошибка:
Чтобы решить эту проблему вам надо вспомнить какой тип в Pascal отвечает за нецелые числа. В этом уроке мы рассматривали основные типы. Итак, это вещественный тип — Real. Вот, как выглядит исправленная программа:
Как видите, эта статья полезна для прочтения как новичкам, так и уже более опытными пользователям Pascal, так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие.
Алгоритмизация и программирование являются
одной из трудных для понимания учащимися тем в
предмете информатика, а при наличии дефицита
часов, выделяемых на изучение предмета, перед
учителем встает довольно сложная задача «Как
познакомить хотя бы с основами программирования
всех учащихся, в том числе и непрофильных
классов?». Между тем, как мы видим и в новых
стандартах и в демо-версии ЕГЭ по информатике эта
тема занимает существенное место. Предлагаемые
ниже материалы помогают познакомить ребят с
основными алгоритмическими конструкциями и
реализацией их на языке программирования
Паскаль и дать начальное представление о языке.
Заинтересовавшиеся учащиеся могут в дальнейшем
продолжить изучение языка программирования на
спецкурсе.
Предлагаю задания к трем урокам: по линейному
алгоритму, ветвлению и циклам. Типы переменных и
структура программы на Паскале рассматриваются
на предыдущих уроках.
Начальная подготовка учащихся.
- Знание основных алгоритмических конструкций:
линейный алгоритм, ветвление, цикл. - Знание основных типов переменных.
- Знание структуры программы на Паскале.
Ход урока.
Перед каждым уроком учитель раскладывает на
столах «Папки ученика», в которых находятся
листы с заданиями, таблица «Реализация элементов
блок – схемы алгоритма на языке Паскаль»,
«Алгоритм создания программы по шаблону» и
другой справочный материал. Если
предполагается создание программы по шаблону,
т.е. ученики редактируют уже имеющуюся программу,
то соответствующий файл *.pas с текстом программы
должен находится на жестком диске в
соответствующем каталоге.
Для знакомства с реализацией алгоритмической
конструкции средствами языка используется сайт http://schools.keldysh.ru/gym1522/inform/pascal/ (см. Приложение1)
Обсуждается задание, проговаривается сценарий,
составляется блок-схема алгоритма.
Далее ученики работают самостоятельно по
предложенному заданию. На каждый тип алгоритма
дано несколько заданий, одно выполняется в
классе, остальные могут быть домашним или
дополнительным заданием.
В качестве заданий на ветвление и циклы взяты
задачи по физике, так как программирование
изучается на уроках интегрированного с физикой
курса «Компьютерное моделирование физических
процессов и явлений» в 9 классе.
Описание приложений.
- Адрес сайта «Паскаль для начинающих» — http://schools.keldysh.ru/gym1522/inform/pascal/ Немного
сокращенный вариант находится в архиве (Приложение1.zip). Сайт выполнен
с использованием флэш-технологии, позволяет в
анимационной форме дать начальное представление
о языке Паскаль 7.0 Для демонстрации надо
разархивировать в каталог на жестком диске.
Главная страница сайта – index.html - Тексты программ для создания программ по
шаблону – файлы Приложение2.pas и Приложение3.pas. Их
надо переименовать в Shablon1.pas и Shablon2.pas и поместить
в соответствующий каталог на диске.
Использованная литература дана в Приложении 1
на сайте в разделе «ссылки».
Реализация элементов блок – схемы
алгоритма на языке Паскаль.
Элемент блок |
В программе |
Действия |
|
BEGIN |
Начало работы |
|
END. |
Конец работы |
WRITE (‘A,B) |
На экране появляется надпись: введите A, B (оператор вывода данных) |
|
WRITE (C) |
На экране появляется значение переменной C. (оператор вывода данных) |
|
WRITE (‘результат=’,S) |
На экране появляется текст результат= и значение переменной S. (оператор вывода данных) |
|
READ (X,Y) |
Надо вводить два числа с клавиатуры (оператор ввода данных) |
|
|
C:=4*T ; D:=A+B; I:=I+1; |
После выполнения операторов, переменным присваиваются следующие значения: C=4T, D=A+B, I=I+1 (операторы присваивания) |
IF A>B THEN
ELSE
|
Если условие A>B верно, то выполняется группа операторов ОП.1, в противном случае – группа операторов ОП.2 (условный оператор) |
|
WHILE I<=N DO
|
Пока будет выполнено I? N, выполняется группа операторов ОП.1 (оператор цикла с предусловием, ОП.1 – тело цикла) |
|
REPEAT ОП.1 UNTIL I>N |
Выполняется группа опера-торов ОП.1 до тех пор, пока не будет выполнено условие I>N. (оператор цикла с постусловием, ОП.1 – тело цикла) |
|
FOR I:=1 TO N DO
|
Для каждого I от 1 до N выполняется группа операторов ОП.1 (оператор цикла с параметром, I – параметр цикла) |
Линейный алгоритм. Простейшая
программа (ввод/вывод данных, вычисление суммы,
разности, произведения и частного двух чисел).
Задание
Написать программу, которая
Примерный вид экрана при работе |
||
Введите свое имя Вася Привет, Вася Введите 2 числа 2 6 Сумма чисел равна 8 |
Для выполнения задания можно использовать
приведенный ниже текст программы или заранее
подготовленный учителем файл Shablon1.pas (файл Приложение2.pas) с текстом
программы, который находится в каталоге CLASS (там
же находятся личные папки учащихся). Ученик
проставляет вместо вопросительных знаков
необходимые операторы и служебные слова.
Комментарии в фигурных скобках поясняют, что
необходимо сделать. Программа состоит из двух
частей. В первой части программы демонстрируется
использование операторов ввода и вывода, во
второй, после комментария {ЗАДАНИЯ}, ученику надо
самому записать необходимые операторы,
используя приведенную выше блок-схему и
комментарии в программе. Алгоритм создания
программы по шаблону дан ниже.
Текст программы по линейному
алгоритму
PROGRAM P1;
{Объявление переменной S для ввода имени, надо
указать тип переменной — строковый}
VAR S: ???? ;
{Объявление переменных A и B для ввода чисел,
надо указать тип переменных — целые числа со
знаком}
VAR A,B: ???? ;
{Объявление переменной C для вывода результата,
надо указать тип переменной — все действительные
числа}
VAR C: ???? ;
{Начало раздела инструкций}
BEGIN
{Оператор вывода на экран сообщения (просьба
ввести имя)}
WRITE (‘Введите свое имя’);
{Оператор ввода данных (значение переменной S =
имя пользователя)}
READLN (S);
{Вывод на экран сообщения (приглашения к работе)
– слово «Привет» и значение переменной S
(введенное пользователем имя)}
WRITELN (‘Привет, ‘, S);
{ЗАДАНИЯ:}
{1)Запишите оператор вывода на экран
приглашения к вводу 2 чисел (переменные A и В)}
???????
{2) Запишите оператор ввода для переменных A и В}
???????
{3) Запишите оператор присваивания для
вычисления значения переменной С (сумма,
разность, произведение, частное двух чисел)}
C:=?????;
{4) Запишите оператор вывода на экран результата
вычислений (сумма (разность, произведение,
частное) = <значение переменной>}
????????
{Конец программы, конец раздела инструкций}
END.
Ветвление. Моделирование
равномерного прямолинейного движения двух тел.
Задания
Построить компьютерную модель движения двух
I. Найти скорость сближения (удаления) 2-х Рассмотреть случаи: 1. Тела двигаются в одном направлении. 2. Тела двигаются в противоположных
Примерный вид экрана при работе |
||
Введите скорость 1 тела 10 Введите скорость 2 тела 5 Введите направление 1 тела L Введите направление 2 тела R
Скорость равна 15 |
||
II. Добавить ввод начальных координат тел и определить сближаются или отдаляются тела. III. Определить расстояние
IV. Выводить на экран текущие координаты тел.
V. Выводить на экран картину движения тел. |
||
Примечания:
|
Текст программы на ветвление
PROGRAM P2;
{Объявление переменных V1, V2 и V для значений
скоростей, тип переменных — целые числа со знаком
}
VAR V1, V2, V: ??? ;
{Объявление переменных A1 и A2 для значений
направлений, значения переменных — символы}
VAR A1, A2: ??? ;
{Начало раздела инструкций}
BEGIN
{Оператор вывода на экран сообщения (просьба
ввести скорость первого тела)}
WRITE (‘Введите скорость 1 тела’);
{Оператор ввода данных (значение переменной V1)}
READLN (V1);
{Тоже для второго тела}
?????????????
?????????????
{Аналогично осуществить ввод направлений
движения}
WRITE (‘Введите направление 1 тела’ );
READLN (A1);
?????????????
?????????????
{Условный оператор: проверка условия
равенства значений переменных A1 и A2}
IF A1 = A2 THEN V := V1 — V2 ELSE V := V1 + V2;
{Определение модуля вектора ABS – функция
вычисление абсолютной величины}
V:=ABS(V);
{Оператор вывода на экран результата
вычислений }
????????
{Конец программы, конец раздела инструкций}
END.
Текст программы находится в файле Приложение3.pas (в кодировке MS
DOS). Его надо переименовать в Shablon2.pas и можно
использовать при создании программы по шаблону
(см. алгоритм ниже).
Алгоритм создания программы по
шаблону.
1. Войти в систему программирования Turbo Pascal 7.0.
2. Открыть файл ShablonK.pas (K — номер шаблона):
2.1. File -> Open
2.2. Перейти в каталог CLASS (в списке Files
выбрать ..)
2.3. Выбрать файл ShablonK.pas (K — номер шаблона)
2.4. Подтвердить выбор (Open)
3. Выполнить задание, заменяя ????.
4. Сохранить файл в своем каталоге:
4.1. (File -> Save as)
4.2. Убедится, что находитесь в своем каталоге
(нижняя строчка)
4.3. Ввести имя файла
4.4. Подтвердить сохранение (Ok)
5. Запустить программу (Run -> Run или Ctrl+F9)
6. При наличии ошибок, внести изменения в
программу и повторить пункт 5.
7. Просмотреть результат выполнения программы (Debug
User Screen или Alt+F5)
8. Сохранить файл (File -> Save или F2)
9. Выйти из системы программирования (File ->
Exit или Alt+X)
Для циклического алгоритма уже текст программы
не дается. Учащиеся должны сами составить
программу по блок – схеме.
Циклы. Моделирование
равноускоренного движения.
Задания
Построить модель равноускоренного движения
I.. Тело двигается по прямой. Выводить на Исходные данные (задаются с клавиатуры): 1. Начальная скорость тела (V0, м/с). 2. Ускорение тела со знаком (A, м/с2). 3. Начальное положение тела (X0, м). 4. Время движения (TK, с). Расчетные данные (выводятся на экран):
Примерный вид экрана при работе |
||
Введите скорость тела 10 Введите ускорение тела 2 Введите нач. положение тела 0 Введите время движения тела 200 T = 0 X = 0 T = 10 X = 200 T = 20 X = 600 ………..
T = 200 X = 42000 |
||
II. Рассмотреть случай, когда известно конечное положение тела, но неизвестно время движения. III. Организовать ввод/вывод
Примечание: блок-схема и фрагменты программы |
||
Реализация блока |
||
Цикл с предусловием |
Цикл с постусловием | Цикл с параметром |
x:=x0;
t:=0;
While T <= TK do
begin
X:=X0+V0*T+A*T*T/2;
Writeln (‘T = ‘,T,’ X = ‘,X);
T:=T+10; end; |
X:=X0;
T:=0;
Repeat
X:=X0+V0*T+A*T*T/2;
Writeln (‘T = ‘,T,’ X = ‘,X); T:=T+10;
Until T>=TK; |
X:=X0; T:=0; N:=Trunc(TK/10);
For i:=0 to N do
begin
T:=i*10; X:=X0+V0*T+A*T*T/2;
Writeln (‘T = ‘,T,’ X = ‘,X);
end; |
Итак, опустив долгие и нудные восхваления Паскаля, которые так любят публиковать в своих статьях редакторы многих сайтов, приступим непосредственно к самому основному – к программированию.
В школах, как правило, изучение Паскаля начинают с решения простейших задач путем составления различных алгоритмов или блок-схем, которое многие так часто игнорируют, считая никому не нужной ерундой. А зря. Я, как и любой другой человек, хоть немного соображающий в программировании (не важно где – в Паскале, Си, Дельфи), могу уверить Вас – умение правильно и быстро составлять схемы является фундаментом, основой программирования.
Блок-схема — графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и т.д.).
Существует несколько основных видов блоков, которые нетрудно запомнить:
Сегодняшний урок я решила посвятить не только изучению блок-схем, но также и изучению линейных алгоритмов. Как Вы помните, линейный алгоритм — наипростейший вид алгоритма. Его главная особенность в том, что он не содержит никаких особенностей. Как раз это и делает работу с ним простой и приятной.
Задача №1: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».
Данная задача не должна представлять особой трудности, так как построена она на хорошо известных всем нам формулах расчета площади и периметра прямоугольника, поэтому зацикливаться на выведении этих формул мы не будем.
Составим алгоритм решения подобных задач:
1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано». (В задаче №1 к известным переменным относятся стороны: a, b ;к неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b))
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.
Запишем условие в более кратком виде.
Решение задачи №1
Структура программы, решающей данную задачу, тоже проста:
- 1) Описание переменных;
- 2) Ввод значений сторон прямоугольника;
- 3) Расчет площади прямоугольника;
- 4) Расчет периметра прямоугольника;
- 5) Вывод значений площади и периметра;
- 6) Конец.
А вот и решение:
Задача №2: Скорость первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2, T и S задаются с клавиатуры.
Решение осуществляем, опять же, следуя алгоритму. Прочитав текст, мы переходим к следующему пункту. Как и во всех физических или математических задачах, это запись условий задачи:
Дано: V1, V2, S, Т
Найти: S1
Далее идет самая главная и в то же время самая интересная часть нашего решения – составление нужных нам формул. Как правило, на начальных стадиях обучения все необходимые формулы хорошо нам известны и взяты из других технических дисциплин (например, на нахождение площади различных фигур, на нахождение скорости, расстояния и т.п.).
Формула, используемая для решения нашей задачи, выглядит следующим образом:
Следующий пункт алгоритма – блок-схема:
Решение задачи №2.
А также решение, записанное в Pascal :
Вам может показаться, что две эти программы правильны, но это не так. Ведь сторона треугольника может быть 4.5, а не 4, а скорость машины не обязательно круглое число! А Integer — это только целые числа. Поэтому при попытке написать во второй программе другие числа выскакивает ошибка:
Обратите внимание в Паскале, как и в любом другом языке программирования десятичная дробь вводится с точкой, а не с запятой!
Чтобы решить эту проблему вам надо вспомнить какой тип в Pascal отвечает за нецелые числа. В этом уроке мы рассматривали основные типы. Итак, это вещественный тип — Real. Вот, как выглядит исправленная программа:
Как видите, эта статья полезна для прочтения как новичкам, так и уже более опытными пользователям Pascal, так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие.
Здесь понятней чем в школе.
мля… прикиньте, я узнал про этот сайт только ПОСЛЕ того как сделал программу с условием, узнавая все в инструкции
Ребята , вопрос на засыпку, как заставить «,» (введенную пользователем в числе) заменить на «.» внутри программы, что бы не вылетало юхни с ошибкой.
Взять строку введенную пользователем, заменить «,» на «.».
Если совсем гуглить не умеете, то вам сюда — http://www.cyberforum.ru/pascal/thread190664.html
>> скорость машины не обязательно круглое число!
Нет такого понятия, как «круглое число».
Обе ваши блок-схемы не соответствуют ГОСТу (сдать такие на курсовой проект не получится). ГОСТ определяет блоки начала и конца, как «прямоугольник со скругленными краями», а не «скругленными углами».
>> умение правильно и быстро составлять схемы является фундаментом, основой программирования.
Большинство программистов так не считает. Кроме того, попробуйте поспрашивать у программистов «когда они последний раз составляли блок-схему?» — окажется что в ВУЗе (когда с них зачем-то сдирали знание ГОСТа).
>> так как составление блок-схем не только очень простое и быстрое, но и весьма увлекательное занятие.
Очень сложное, долгое и бесполезное занятие. Для хоть сколько-нибудь большой программы (в тысячу строк хотя бы, как курсак) блок-схемы будут огромные и их будут десятки. А что делать если они перестают соответствовать коду? — вот даже в вашей первой задаче надо будет добавить проверку, что юзер не ввел отрицательные значения сторон, что делать? — исправления кода займут 1 минуту, а исправление блок-схем 10 минут, и зачем тогда этим заниматься?
Программист не должен писать блок-схемы (он их должен читать и понимать и при необходимости исправлять). Блок-схемы это графический язык общения, который понимает как программист, так и не программист. Чтобы пользователь не общался с программистом своими «хотелками», типа я хочу, чтобы вот это правильно считалось, и это число складывалось с этим, а потом выводилось сюда (или вообще говорил — хочу что бы работало), а рисовал все в виде блок-схем с четким алгоритмом. Тогда по идее у программиста будет понимание того, что от него хотят (и он через пять минут не забудет все что ему сказали). Либо, когда общаются два программиста пишущих на разных языках программирования (LISP и Java) и одному нужно объяснить как работает его код, что бы другой переписал его на другом языке.
Как объяснить преподавателю как работает программа, если преподаватель не знает языка программирования на котором написана ваша программа? Или как преподавателю объяснить алгоритм задачи студентам пишущим и реализующим этот алгоритм или программу на разных языках программирования? Нужен какой-то универсальный язык общения и обычно это просто текст «что нужно сделать» на русском языке, а не намного облегчающая жизнь программиста блок-схема.
Вам могут сказать — сделай модуль авторизации (ты же знаешь как, ну как всегда и как везде), а могут нарисовать блок-схему модуля авторизации с учетом всех пожеланий, типа того, что пароль должен содержать не менее 6 символов и что нужно делать в противном случае т.д. То есть блок схему должен уметь рисовать тот кто ставит задачу, а не программист. Либо программист (архитектор либо менеджер проекта), который ставит задачу другим программистам.
Вы слишком придирчивы, серьезно (я говорю про последние два пункта). Понятно, что статья (как почти и весь сайт) написана почти только для школьников, которым об этом твердят в школе. Здесь же им просто объясняют те вещи, которые они на учебе недопоняли
Блок схемы всей программы могут не понадобиться. Это же тонны бумаги и много времени. И да, они устаревают и актуализировать их трудоёмко.
Но при обсуждении новых вариантов решения задачи с другими программистами удобно оперировать блоками с криво-косо нарисованными краями и линиями. Начертил на бумаге или доске и все понятно.
На практике я встречал фотографии доски с блок-схемами, прикреплённые к задачам в Jira.
Не по ГОСТу 🙂
Спасибо, теперь я напишу программу, которая делает код по блок схеме и наоборот
program Logarifm;
Var
X,y,z:real;
function Lgrfm(A,B:Real):Real;
var
Osn:Real;
begin
Osn:=ln(A)/ln(B);
Lgrfm:=Osn;
end;
begin
Write(‘Введите X = ‘);
ReadLn(X);
Write(‘Введите Y = ‘);
ReadLn(Y);
Z:=Lgrfm(X,2)+Lgrfm(Y,3);
WriteLn(‘Z = ‘,Z:10:3);
ReadLn;
end.
Отличный сайт, мне все нравится все понятно и четко, нашел нужные программы.
В блок-схемах начало и конец алгоритма обозначаются не прямоугольником со скруглёнными краями, а овалом!
Алгоритмизация и программирование являются одной из трудных для понимания учащимися тем в предмете информатика, а при наличии дефицита часов, выделяемых на изучение предмета, перед учителем встает довольно сложная задача «Как познакомить хотя бы с основами программирования всех учащихся, в том числе и непрофильных классов?». Между тем, как мы видим и в новых стандартах и в демо-версии ЕГЭ по информатике эта тема занимает существенное место. Предлагаемые ниже материалы помогают познакомить ребят с основными алгоритмическими конструкциями и реализацией их на языке программирования Паскаль и дать начальное представление о языке. Заинтересовавшиеся учащиеся могут в дальнейшем продолжить изучение языка программирования на спецкурсе.
Предлагаю задания к трем урокам: по линейному алгоритму, ветвлению и циклам. Типы переменных и структура программы на Паскале рассматриваются на предыдущих уроках.
Начальная подготовка учащихся.
- Знание основных алгоритмических конструкций: линейный алгоритм, ветвление, цикл.
- Знание основных типов переменных.
- Знание структуры программы на Паскале.
Перед каждым уроком учитель раскладывает на столах «Папки ученика», в которых находятся листы с заданиями, таблица «Реализация элементов блок – схемы алгоритма на языке Паскаль», «Алгоритм создания программы по шаблону» и другой справочный материал. Если предполагается создание программы по шаблону, т.е. ученики редактируют уже имеющуюся программу, то соответствующий файл *.pas с текстом программы должен находится на жестком диске в соответствующем каталоге.
Для знакомства с реализацией алгоритмической конструкции средствами языка используется сайт http://schools.keldysh.ru/gym1522/inform/pascal/ (см. Приложение1)
Обсуждается задание, проговаривается сценарий, составляется блок-схема алгоритма.
Далее ученики работают самостоятельно по предложенному заданию. На каждый тип алгоритма дано несколько заданий, одно выполняется в классе, остальные могут быть домашним или дополнительным заданием.
В качестве заданий на ветвление и циклы взяты задачи по физике, так как программирование изучается на уроках интегрированного с физикой курса «Компьютерное моделирование физических процессов и явлений» в 9 классе.
Описание приложений.
- Адрес сайта «Паскаль для начинающих» — http://schools.keldysh.ru/gym1522/inform/pascal/ Немного сокращенный вариант находится в архиве (Приложение1.zip). Сайт выполнен с использованием флэш-технологии, позволяет в анимационной форме дать начальное представление о языке Паскаль 7.0 Для демонстрации надо разархивировать в каталог на жестком диске. Главная страница сайта – index.html
- Тексты программ для создания программ по шаблону – файлы Приложение2.pas и Приложение3.pas. Их надо переименовать в Shablon1.pas и Shablon2.pas и поместить в соответствующий каталог на диске.
Использованная литература дана в Приложении 1 на сайте в разделе «ссылки».
Реализация элементов блок – схемы алгоритма на языке Паскаль.
Элемент блок схемы
В программе
Действия
BEGIN
Начало работы программы
(служебное слово)
Конец работы программы
(служебное слово)
WRITE (‘A,B)
На экране появляется надпись: введите A, B
(оператор вывода данных)
WRITE (C)
На экране появляется значение переменной C.
(оператор вывода данных)
WRITE (‘результат=’,S)
На экране появляется текст результат= и значение переменной S.
(оператор вывода данных)
READ (X,Y)
Надо вводить два числа с клавиатуры
(оператор ввода данных) C:=4*T ;
D:=A+B;
I:=I+1; После выполнения операторов, переменным присваиваются следующие значения: C=4T, D=A+B, I=I+1 (операторы присваивания) IF A>B THEN Если условие A>B верно, то выполняется группа операторов ОП.1, в противном случае – группа операторов ОП.2 (условный оператор)
WHILE I N Выполняется группа опера-торов ОП.1 до тех пор, пока не будет выполнено условие I>N.
(оператор цикла с постусловием, ОП.1 – тело цикла) FOR I:=1 TO N DO Для каждого I от 1 до N выполняется группа операторов ОП.1
(оператор цикла с параметром, I – параметр цикла)
Линейный алгоритм. Простейшая программа (ввод/вывод данных, вычисление суммы, разности, произведения и частного двух чисел).
|
Написать программу, которая
Примерный вид экрана при работе |
Введите свое имя Вася Привет, Вася Введите 2 числа 2 6 Сумма чисел равна 8 |
Для выполнения задания можно использовать приведенный ниже текст программы или заранее подготовленный учителем файл Shablon1.pas (файл Приложение2.pas) с текстом программы, который находится в каталоге CLASS (там же находятся личные папки учащихся). Ученик проставляет вместо вопросительных знаков необходимые операторы и служебные слова. Комментарии в фигурных скобках поясняют, что необходимо сделать. Программа состоит из двух частей. В первой части программы демонстрируется использование операторов ввода и вывода, во второй, после комментария <ЗАДАНИЯ>, ученику надо самому записать необходимые операторы, используя приведенную выше блок-схему и комментарии в программе. Алгоритм создания программы по шаблону дан ниже.
Идёт приём заявок
Подать заявку
Для учеников 1-11 классов и дошкольников
Язык программирования Паскаль. Блок-схемы.
Изучение Паскаля необходимо начинать с решения простейших задач путем составления различных алгоритмов или блок-схем, так как умение правильно и быстро составлять схемы является фундаментом, основой программирования.
Блок-схема — графическое представление алгоритма. Она состоит из функциональных блоков, которые выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и т.д.).
Существует несколько основных видов блоков, которые необходимо запомнить:
Легче всего показать разработку блок-схемы на примере линейного алгоритма.
Для этого рассмотрим задачу:
Задача №1: «Рассчитать площадь и периметр прямоугольника по двум известным сторонам».
Составим алгоритм решения подобных задач:
1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано».
(В задаче №1 к известным переменным относятся стороны: a,b ;к неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b)
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.
Запишем условие в более кратком виде.
Блок-схема:
Структура программы, решающей данную задачу, тоже проста:
1) Описание переменных;
2) Ввод значений сторон прямоугольника;
3) Расчет площади прямоугольника;
4) Расчет периметра прямоугольника;
5) Вывод значений площади и периметра;
А вот и решение:
writeln( ‘Введите стороны прямоугольника!’ );
writeln( ‘Площадь прямоугольника: ‘ ,S);
write( ‘Периметр прямоугольника: ‘ ,P);
(Обратите внимание, если бы вы использовали тип integer , а не real , то при введении дробных чисел, у вас возникала бы ошибка)
Задание для самостоятельного решения(Нарисовать блок-схему, написать решение задачи в ПАСКАЛЕ):
Задача №2: Скорость первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2, T и S задаются с клавиатуры.
Даю подсказку: Для нахождения S 1 , вам необходимо воспользоваться следующей формулой : S1=(V1+V2)*T+S
write( ‘Введите скорость первого автомобиля: ‘ );
write( ‘Введите скорость второго автомобиля: ‘ );
write( ‘ Введите время : ‘ );
write( ‘Введите расстояние между автомобилями: ‘ );
writeln( ‘Через ‘ ,t, ‘ч. расстояние ‘ ,S1, ‘ км.’ );
- Килочко Алиса ВитальевнаНаписать 3304 17.04.2016
Номер материала: ДБ-037824
- 17.04.2016 518
- 17.04.2016 1578
- 17.04.2016 510
- 17.04.2016 492
- 17.04.2016 445
- 17.04.2016 721
- 17.04.2016 219
Не нашли то что искали?
Вам будут интересны эти курсы:
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако редакция сайта готова оказать всяческую поддержку в решении любых вопросов связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.
Язык программирования Паскаль. Блок-схемы.
Изучение Паскаля необходимо начинать с решения простейших
задач путем составления различных алгоритмов или блок-схем, так как умение
правильно и быстро составлять схемы является фундаментом, основой программирования.
Блок-схема — графическое
представление алгоритма. Она состоит из функциональных блоков, которые
выполняют различные назначения (ввод/вывод, начало/конец, вызов функции и
т.д.).
Существует несколько основных видов блоков, которые необходимо
запомнить:
Легче всего показать разработку блок-схемы
на примере линейного алгоритма.
Для этого рассмотрим задачу:
Задача №1: «Рассчитать
площадь и периметр прямоугольника по двум известным сторонам».
Составим алгоритм решения подобных задач:
1) Прочитать задачу.
2) Выписать известные и неизвестные нам переменные в «дано».
(В задаче №1 к известным переменным относятся стороны: a,b ;к
неизвестным — площадь S и периметр P)
3) Вспомнить либо составить необходимые формулы. (У нас: S=a*b; P=2*(a+b)
4) Составить блок-схему.
5) Записать решение на языке программирования Pascal.
Запишем условие в более кратком
виде.
Дано: a,b
Найти: S,P
Блок-схема:
Структура программы, решающей
данную задачу, тоже проста:
- 1) Описание переменных;
- 2) Ввод значений сторон
прямоугольника; - 3) Расчет площади
прямоугольника; - 4) Расчет периметра
прямоугольника; - 5) Вывод значений площади и
периметра; - 6) Конец.
А вот и решение:
Program Rectangle;
Var a,b,S,P: real;
Begin
writeln(‘Введите стороны прямоугольника!’);
readln(a,b);
S:=a*b;
P:=2*(a+b);
writeln(‘Площадь прямоугольника: ‘,S);
write(‘Периметр прямоугольника: ‘,P);
End.
(Обратите внимание, если бы вы использовали
тип integer, а не real, то при
введении дробных чисел, у вас возникала бы ошибка)
Задание для самостоятельного
решения(Нарисовать блок-схему, написать решение задачи в ПАСКАЛЕ):
Задача №2: Скорость
первого автомобиля — V1 км/ч, второго – V2 км/ч, расстояние между ними S км.
Какое расстояние будет между ними через T часов, если автомобили движутся в
разные стороны? Значения V1, V2, T и S задаются с клавиатуры.
Даю подсказку: Для нахождения S1
, вам необходимо воспользоваться следующей формулой : S1=(V1+V2)*T+S
Ответ:
блок-схема:
Program
Rasstoyanie;
Var
V1,V2,S,T,S1:
real; {Ввод }
begin
write(‘Введите скорость первого автомобиля: ‘);
readln(V1);
write(‘Введите скорость второго автомобиля: ‘);
readln(V2);
write(‘Введите время: ‘);
readln(T);
write(‘Введите расстояние между автомобилями: ‘);
readln(S);
S1:=(V1+V2)*T+S;
writeln(‘Через ‘,t,‘ч. расстояние ‘,S1,‘ км.’);
End.
