Паскаль для начинающих (3 урока по основным типам алгоритмов)
Разделы: Информатика
Алгоритмизация и программирование являются одной из трудных для понимания учащимися тем в предмете информатика, а при наличии дефицита часов, выделяемых на изучение предмета, перед учителем встает довольно сложная задача «Как познакомить хотя бы с основами программирования всех учащихся, в том числе и непрофильных классов?». Между тем, как мы видим и в новых стандартах и в демо-версии ЕГЭ по информатике эта тема занимает существенное место. Предлагаемые ниже материалы помогают познакомить ребят с основными алгоритмическими конструкциями и реализацией их на языке программирования Паскаль и дать начальное представление о языке. Заинтересовавшиеся учащиеся могут в дальнейшем продолжить изучение языка программирования на спецкурсе.
Предлагаю задания к трем урокам: по линейному алгоритму, ветвлению и циклам. Типы переменных и структура программы на Паскале рассматриваются на предыдущих уроках.
Начальная подготовка учащихся.
Знание основных алгоритмических конструкций: линейный алгоритм, ветвление, цикл.
Знание основных типов переменных.
Знание структуры программы на Паскале.
Ход урока.
Перед каждым уроком учитель раскладывает на столах «Папки ученика», в которых находятся листы с заданиями, таблица «Реализация элементов блок – схемы алгоритма на языке Паскаль», «Алгоритм создания программы по шаблону» и другой справочный материал. Если предполагается создание программы по шаблону, т.е. ученики редактируют уже имеющуюся программу, то соответствующий файл *.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 AB THEN BEGIN ОП.1 END ELSE BEGIN ОП.2 END | Если условие AB верно, то выполняется группа операторов ОП.1, в противном случае – группа операторов ОП.2 (условный оператор) |
| | WHILE I BEGIN ОП.1 END | Пока будет выполнено I? N, выполняется группа операторов ОП.1 (оператор цикла с предусловием, ОП.1 – тело цикла) |
| | REPEAT ОП.1 UNTIL IN | Выполняется группа опера-торов ОП.1 до тех пор, пока не будет выполнено условие IN. (оператор цикла с постусловием, ОП.1 – тело цикла) |
| | FOR I:=1 TO NDO BEGIN ОП.1 END | Для каждого 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. Тела двигаются в противоположных направлениях. Скорости вводятся с клавиатуры после вывода на экран соответствующего приглашения. Направление движения каждого тела задаются буквами (L – влево, R – вправо) Примерный вид экрана при работе | |
| | Введите скорость 1 тела 10 Введите скорость 2 тела 5 Введите направление 1 тела L Введите направление 2 тела R Скорость равна 15 | |
| II. Добавить ввод начальных координат тел и определить сближаются или отдаляются тела. III. Определить расстояние между телами через время t (ввести с клавиатуры). IV. Выводить на экран текущие координаты тел. V. Выводить на экран картину движения тел. | |
| Примечания: блок-схема и заготовка для программы даны для I; 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)
Для циклического алгоритма уже текст программы не дается. Учащиеся должны сами составить программу по блок – схеме.
Циклы. Моделирование равноускоренного движения.
| | Задания Построить модель равноускоренного движения тела (X=X0+V0t+At2/2). I.. Тело двигается по прямой. Выводить на экран координату тела через каждые 10 секунд движения. Исходные данные (задаются с клавиатуры): 1. Начальная скорость тела (V0, м/с). 2. Ускорение тела со знаком (A, м/с2). 3. Начальное положение тела (X0, м). 4. Время движения (TK, с). Расчетные данные (выводятся на экран): 1. Текущее положение тела (X, м). 2. Текущее время движения (T, с). Примерный вид экрана при работе |
| | Введите скорость тела 10 Введите ускорение тела 2 Введите нач. положение тела 0 Введите время движения тела 200 T = 0 X = 0 T = 10 X = 200 T = 20 X = 600 ……….. T = 200 X = 42000 | |
| II. Рассмотреть случай, когда известно конечное положение тела, но неизвестно время движения. III. Организовать ввод/вывод данных в других единицах (км, км/час, час) с пересчетом в программе. Примечание: блок-схема и фрагменты программы даны для задания I. |
| Реализация блока расчета и вывода на экран времени движения и положения тела |
| Цикл с предусловием | Цикл с постусловием | Цикл с параметром |
| | | |
| x:=x0; t:=0; While T 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; |
Поделиться страницей: