Автор:
Лавренченко Елена Владимировна
учитель информатики
МОУ
СОШ № 5 г. Саров
Предлагаю систему
задач для знакомства учащихся с языком программирования Паскаль. По программе
Семакина И.Г. 9 класс. Изучение любого языка программирования в рамках базового
курса информатики связано с трудностями освоения его учащимися: понимания, запоминания
разделов программы, формата записи операторов, смысл операторов, порядок
применения, влияние аргументов на результат выполнения команды, синтаксис
языка.
Чтобы дети
разобрались, привыкли к языку программирования Паскаль. Самое главное, создать
ситуацию успеха для каждого ученика на начальном этапе изучения языка
программирования разработала систему задач.
При одном часе в
неделю, каждый урок новая тема. А без практики дети никогда не научатся решать
задачи и ориентироваться в программной среде языка программирования Паскаль.
Поэтому 15-20 мин на каждом уроке мы решали задачи. Первая задача «Найди
ошибку», а вторая требует применить те же операторы, но только в другой
ситуации. То есть обязательно каждый ученик закреплял, таким образом, то, что
он слышал в теории на уроке. С заданиями справлялись все учащиеся, тем самым
достигалась ситуация успеха.
Третья и четвертая
задачи зависят от уровня ученика и от вашего желания. Задачи предлагались в
шести вариантах, что позволяло избежать списывания.
- Оператор вывода,
установки места вывода и цвета символов.
- Оформление
программы на языке Паскаль. Оператор вывода.
- Описание
переменных. Оператор ввода, оператор присваивания.
- Условный оператор.
- Оператор цикла с параметром.
Тема: Оператор
вывода, установки места вывода и цвета символов.
- Напишите программу,
которая выводит на экран число.
- Напишите программу,
которая выводит на экран два числа (в строчку через пробел).
- Напишите программу,
которая выводит на экран пять произвольных чисел (в столбик).
- Напишите программу,
которая выводит на экран число 555 зеленым цветом в 38 столбце на 12
строке.
- Напишите программу,
которая выводит на экран четыре числа в столбик разного цвета в разных
частях экрана.
- Напишите программу,
которая выводит на четверостишие:
Унылая пора! Очей очарованье!
Приятна мне твоя прощальная краса –
Люблю я пышное природы увяданье,
В багрянец и золото одетые леса.
А.С.
Пушкин
- Напишите программу,
которая выводит на синем фоне серыми буквами четверостишие:
Буря мглою небо кроет,
Вихри снежные крутя.
То как зверь она завоет,
То заплачет как дитя.
А. С. Пушкин
Тема: Оформление
программы на языке Паскаль. Оператор вывода.
ВАРИАНТ 1. Найди
ошибку.
1. Набери программу,
и измени ее, так чтобы она выполнилась.
Условие задачи.
Напишите программу,
которая выводит на экран фразу «Каждый охотник желает знать, где сидит фазан» в
столбик соответствующего цвета.
Программа:
Program radyga;
uses crt;
BEGIN
textcolor (12);
writeln (‘Каждый’);
textcolor (6);
write (‘охотник’);
textcolor (14)
writeln (‘желает’);
textcolor (2);
writeln (‘знать,’);
textcolor (3);
write (‘где’);
textcolor (1)
writeln ( сидит );
textcolor (5);
writeln (‘фазан’);
END.
2. Реши самостоятельно.
Напишите программу,
которая выводит на синем (1) фоне серыми (8) буквами свою фамилию имя отчество.
ВАРИАНТ 2. Найди
ошибку.
1. Набери программу,
и измени ее, так чтобы она выполнилась.
Условие задачи.
Напишите программу,
которая выводит на экран фразу «Каждый охотник желает знать, где сидит фазан» в
столбик соответствующего цвета.
Программа:
Program radyga;
uses crt;
BEGIN
textcolor (12);
write (‘Каждый’);
textcolor (6);
writeln ( охотник
);
textcolor (14)
writeln (‘желает’);
textcolor (2);
write (‘знать,’);
textcolor (3);
writeln (‘где’);
textcolor (1);
writeln (‘сидит’)
textcolor (5)
writeln (‘фазан’);
END.
2. Реши самостоятельно.
Напишите программу,
которая выводит на сером (8) фоне зелеными (2) буквами свою фамилию имя
отчество.
ВАРИАНТ 3. Найди
ошибку.
1. Набери программу,
и измени ее, так чтобы она выполнилась.
Условие задачи.
Напишите программу,
которая выводит на экран фразу «Каждый охотник желает знать, где сидит фазан» в
столбик соответствующего цвета.
Программа:
Program radyga;
uses crt;
BEGIN
textcolor (12);
writeln (‘Каждый’);
textcolor (6)
write (‘охотник’);
textcolor (14);
writeln (‘желает’);
textcolor (2);
writeln (‘знать,’);
textcolor (3);
write (‘где’);
textcolor (1);
writeln (‘сидит’)
textcolor (5);
writeln ( фазан );
END.
2. Реши самостоятельно.
Напишите программу,
которая выводит на синем (1) фоне желтыми (14) буквами свою фамилию имя
отчество.
ВАРИАНТ 4. Найди
ошибку.
1. Набери программу,
и измени ее, так чтобы она выполнилась.
Условие задачи.
Напишите программу,
которая выводит на экран фразу «Каждый охотник желает знать, где сидит фазан» в
столбик соответствующего цвета.
Программа:
Program radyga;
uses crt;
BEGIN
textcolor (12);
write (‘Каждый’);
textcolor (6)
writeln (‘охотник’);
textcolor (14);
writeln (‘желает’)
textcolor (2);
writeln (‘знать,’);
textcolor (3);
write (‘где’);
textcolor (1);
writeln ( сидит );
textcolor (5)
writeln (‘фазан’);
END.
2. Реши самостоятельно.
Напишите программу,
которая выводит на синем (1) фоне серыми (8) буквами свою фамилию имя отчество.
ВАРИАНТ 5. Найди
ошибку.
1. Набери программу,
и измени ее, так чтобы она выполнилась.
Условие задачи.
Напишите программу,
которая выводит на экран фразу «Каждый охотник желает знать, где сидит фазан» в
столбик соответствующего цвета.
Программа:
Program radyga;
uses crt;
BEGIN
textcolor (12);
writeln (‘Каждый’);
textcolor (6)
writeln (‘охотник’);
textcolor (14);
writeln ( желает
);
textcolor (2);
write (‘знать,’);
textcolor (3);
writeln (‘где’)
textcolor (1);
writeln (‘сидит’);
textcolor (5);
write (‘фазан’);
END.
2. Реши самостоятельно.
Напишите программу,
которая выводит на сером (7) фоне зелеными (2) буквами свою фамилию имя
отчество.
ВАРИАНТ 6. Найди
ошибку.
1. Набери программу,
и измени ее, так чтобы она выполнилась.
Условие задачи.
Напишите программу,
которая выводит на экран фразу «Каждый охотник желает знать, где сидит фазан» в
столбик соответствующего цвета.
Программа:
Program radyga;
uses crt;
BEGIN
textcolor (12);
writeln (‘Каждый’);
textcolor (6);
write (‘охотник’);
textcolor (14);
writeln (‘желает’)
textcolor (2);
write (‘знать,’);
textcolor (3);
writeln ( где );
textcolor (1);
writeln (‘сидит’);
textcolor (5)
writeln (‘фазан’);
END.
2. Реши самостоятельно.
Напишите программу,
которая выводит на синем (1) фоне желтыми (14) буквами свою фамилию имя
отчество.
Тема: Описание
переменных. Оператор ввода, оператор присваивания.
ВАРИАНТ № 1. Найди
ошибку.
1) Наберите программу, и измените ее так, чтобы
она выполнилась.
Условие задачи: Ввести с клавиатуры 2 числа – длины сторон
прямоугольника. Посчитать и вывести на экран периметр прямоугольника.
Программа:
Program perimeter;
Var a, P: integer;
BEGIN
writeln (Введите длины сторон прямоугольника);
readln (a, b);
P := (a b) * 2;
writeln (‘Периметр
= ’, P );
END.
2) Реши
самостоятельно.
Ввести с клавиатуры 2
числа – длин сторон прямоугольника. Посчитать и вывести на экран площадь
прямоугольника.
ВАРИАНТ № 2. Найди
ошибку.
1) Наберите программу, и измените ее так, чтобы
она выполнилась.
Условие задачи: Ввести с клавиатуры 2 числа – длины сторон
прямоугольника. Посчитать и вывести на экран периметр прямоугольника.
Программа:
Program perimeter;
Var b, P: integer;
BEGIN
writeln (‘Введите длины сторон прямоугольника’);
readln (a, b);
P := (a b) * 2;
writeln (Периметр = , P );
END.
2) Реши
самостоятельно.
Ввести с клавиатуры 3
числа – длин сторон треугольника. Посчитать и вывести на экран его периметр.
ВАРИАНТ № 3. Найди
ошибку.
1) Наберите программу, и измените ее так, чтобы
она выполнилась.
Условие задачи: Ввести с клавиатуры 2 числа – длины сторон
прямоугольника. Посчитать и вывести на экран периметр прямоугольника.
Программа:
Program perimeter;
Var a, P: integer;
BEGIN
writeln (‘Введите длины сторон прямоугольника’);
readln (a, b);
P := (a + b) 2;
writeln (Периметр = , P );
END.
2) Реши
самостоятельно.
Ввести с клавиатуры
длины сторон квадрата. Посчитать и вывести на экран его площадь.
ВАРИАНТ № 4. Найди
ошибку.
1) Наберите программу, и измените ее так, чтобы
она выполнилась.
Условие задачи: Ввести с клавиатуры 2 числа – длины сторон
прямоугольника. Посчитать и вывести на экран периметр прямоугольника.
Программа:
Program perimeter;
Var a, b, : integer;
BEGIN
writeln (Введите длины сторон прямоугольника);
readln (a, b);
P = (a + b) * 2;
writeln (‘Периметр
= ’, P );
END.
2) Реши
самостоятельно.
Ввести с клавиатуры 2
числа – длин сторон прямоугольника. Посчитать и вывести на экран площадь
прямоугольника.
ВАРИАНТ № 5. Найди
ошибку.
1) Наберите программу, и измените ее так, чтобы
она выполнилась.
Условие задачи: Ввести с клавиатуры 2 числа – длины сторон
прямоугольника. Посчитать и вывести на экран периметр прямоугольника.
Программа:
Program perimeter;
Var a, , P: integer;
BEGIN
writeln (‘Введите длины сторон прямоугольника’);
readln (a, b);
P : (a + b) * 2;
writeln (Периметр = , P );
END.
2) Реши
самостоятельно.
Ввести с клавиатуры
длины сторон квадрата. Посчитать и вывести на экран его периметр.
ВАРИАНТ № 6. Найди
ошибку.
1) Наберите программу, и измените ее так, чтобы
она выполнилась.
Условие задачи: Ввести с клавиатуры 2 числа – длины сторон
прямоугольника. Посчитать и вывести на экран периметр прямоугольника.
Программа:
Program perimeter;
Var a, b : integer;
BEGIN
writeln (Введите длины сторон прямоугольника);
readln (a, b);
P = (a + b) *2;
writeln (‘Периметр
= ’, P );
END.
2) Реши
самостоятельно.
Ввести с клавиатуры 3
числа – длин сторон треугольника. Посчитать и вывести на экран его периметр.
Тема: Оператор
ввода, оператор присваивания.
ВАРИАНТ 1. Найди
ошибку.
Набери программу, и
измени ее, так чтобы она выполнилась.
Условие задачи.
Дан радиус окружности. Найти площадь круга и длину окружности.
Программа:
Program circle;
Const pi=3.14159;
var r, S : real;
BEGIN
writeln (‘Введите радиус’);
readln (r);
S=pi*r*r;
L:=2pi*r;
writeln (‘Площадь круга ’, S:8:4);
writeln (‘Длина окружности ’, L:8:4);
END.
ВАРИАНТ 2. Найди
ошибку.
Набери программу, и
измени ее, так чтобы она выполнилась.
Условие задачи.
Дан радиус
окружности. Найти площадь круга и длину окружности. Программа:
Program circle;
Const pi=3.14159;
var r, S : real;
BEGIN
writeln (‘Введите радиус’);
readln (r);
S:=pi*r*r;
L=2pi*r;
writeln (‘Площадь круга ’, S:8:4);
writeln (‘Длина окружности ’, L:8:4);
END.
ВАРИАНТ 3. Найди
ошибку.
Набери программу, и
измени ее, так чтобы она выполнилась.
Условие задачи.
Дан радиус
окружности. Найти площадь круга и длину окружности. Программа:
Program circle;
Const pi=3.14159;
var r, L : real;
BEGIN
writeln (‘Введите радиус’);
readln (r);
S=pi*r*r;
L:=2pi*r;
writeln (‘Площадь круга ’, S:8:4);
writeln (‘Длина окружности ’, L:8:4);
END.
ВАРИАНТ 4. Найди
ошибку.
Набери программу, и
измени ее, так чтобы она выполнилась.
Условие задачи.
Дан радиус
окружности. Найти площадь круга и длину окружности. Программа:
Program circle;
Const pi=3.14159;
var S, L : real;
BEGIN
writeln (‘Введите радиус’);
readln (r);
S=pi*r*r;
L:=2*pi r;
writeln (‘Площадь круга ’, S:8:4);
writeln (‘Длина окружности ’, L:8:4);
END.
ВАРИАНТ 5. Найди
ошибку.
Набери программу, и
измени ее, так чтобы она выполнилась.
Условие задачи.
Дан радиус
окружности. Найти площадь круга и длину окружности.
Программа:
Program circle;
Const pi=3.14159;
var r, L : real;
BEGIN
writeln (‘Введите радиус’);
readln (r);
S:=pi*r r;
L=2*pi*r;
writeln (‘Площадь круга ’, S:8:4);
writeln (‘Длина окружности ’, L:8:4);
END.
ВАРИАНТ 6. Найди
ошибку.
Набери программу, и
измени ее, так чтобы она выполнилась.
Условие задачи.
Дан радиус
окружности. Найти площадь круга и длину окружности.
Программа:
Program circle;
Const pi=3.14159;
var S, L : real;
BEGIN
writeln (‘Введите радиус’);
readln (r);
S:=pi r*r;
L=2*pi*r;
writeln (‘Площадь круга ’, S:8:4);
writeln (‘Длина окружности ’, L:8:4);
END.
Тема:
Целочисленное деление.
Сравните результат
выполнения программ.
c := 10 div 5;
writeln (c);
Результат: с =2
|
c := 10 mod 5;
writeln (c);
Результат: с =0
|
Объяснение и вывод
алгоритма нахождения цифр, составляющих число.
- Дано двузначное
число и найти число десятков.
a:=25;
des:=
a div 10;
- Дано двузначное
число и найти число единиц.
ed:=a
mod 10;
- Дано трехзначное
число. Найти число сотен.
a
:= 265;
sot
:= a div 100;
- Дано трехзначное
число. Найти число десятков.
des:= a div 10 mod 10;
Алгоритм нахождения цифр, составляющих число:
- Найти последнюю
цифру числа (N mod 10);
- Уменьшить число в
10 раз, но так чтобы осталось в классе целых чисел, и снова найти
последнюю цифру ( N div 10 mod 10)
- Продолжать до тех
пор, пока не найдем все цифры в записи числа.
Обратная задача.
Известны цифры в записи целого двузначного числа – число десятков А и
число единиц В. Найти само число.
Реши самостоятельно.
1.
Дана масса тела в
килограммах. Составить программу перевода массы в тонны и килограммы.
2.
С кондитерской фабрики
отгружают конфеты в коробках по 10 кг, 5 кг и 1 кг. Какое наименьшее количество
коробок потребуется для перевозки N килограмм конфет?
3.
Дано двузначное число.
Найти сумму и произведение его цифр.
4.
Дано трехзначное число. В
нем зачеркнули первую (последнюю) слева (справа) цифру и приписать её в конце
(начале). Написать полученное число.
5.
Дано трехзначное число.
Найти число, полученное при перестановке второй и третьей цифр заданного числа.
6.
Дано трехзначное число.
Получить пять различных чисел, образованных перестановкой цифр заданного числа.
7.
Допустим, вы получили
наследство 1 млн. долларов и хотите красиво пожить. После долгих раздумий вы
решаете, что будете жить на 8000$ в месяц. На сколько лет вам хватит
наследства?
Тема: Условный
оператор.
1. Даны два действительных числа. Возведите в
квадрат те из них, значения которых неотрицательны, и в четвертую степень –
отрицательные.
2.Если целое число m
делится нацело на целое число n, то вывести на экран частное от деления, в
противном случае вывести сообщение «m на n нацело не делится».
3. Дано двузначное число определить:
a)
Какая из его цифр больше,
первая или вторая.
b)
Одинаковы ли его цифры.
4. Написать программу, которая вычисляет
оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендации о
необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле:
рост (в см) – 100. рекомендуемый вид экрана во время работы программы приведен
ниже (данные, введенные пользователем, выделены полужирным шрифтом).
Введите в одной
строке через пробел рост (см) и вес (кг) затем нажмите Enter
170 68
Вам
надо поправиться на 2.00 кг.
Домашнее задание
по теме: Условный оператор.
I. Расставьте строки программы в правильном порядке.
Условие задачи: определите значение наибольшего из 3-х чисел.
1)
var x, y, z: integer;
2)
writeln (y)
3)
end.
4)
writeln (x);
5)
else if (y>x) and (y>z)
then
6)
readln (x, y, z);
7)
program z1;
8)
begin
9)
else writeln (z);
10)
writeln (‘введите 3 числа’);
11)
if (x>y) and (x>z) then
II. Найдите значения переменных.
A)
a:=4; b:=9; if a>b then x:= a
else x:=b; write (x);
B)
a:=5; b:=49; if a>b then x:= a
+ b else x:=a * b; write (x);
C)
a:=17; b:=18; if a<=b then x:=
5 * a + b else x:=a+5*b; write (x);
D)
a:=2; b:=4; c:=4; if b<>c
then x:= b else begin a:=b + c; x:=a*b*c; end; write (x);
E)
a:=3; b:=7; c:=1; if (a>c) and
(a>b) then x:=a + b + c else x:=a*b*c; write (x);
F)
a:=3; b:=7; с=1; if
(a>c) or (a>b) then x:= a+ b + c else x:=a* b *c; write (x);
Тема: Оператор
цикла с параметром.
1. Написать программу, которая 10 раз выводит на экран имя и фамилию.
2. Написать
программу, которая выводит таблицу квадратов первых десяти целых положительных
чисел. Ниже представлен рекомендуемый вид экрана во время работы программы.
Таблица квадратов
и т.д.
3. Написать
программу, которая вычисляет сумму первых n целых
положительных чисел. Количество суммируемых чисел должно вводиться во время
работы программы. Ниже представлен рекомендуемый вид экрана (данные, введенные
пользователем, выделены полужирным шрифтом).
Вычисление суммы положительных чисел.
Введите кол-во суммируемых чисел: 20
Сумма первых 20 положительных чисел равна 210.
4. Ввести с
клавиатуры 7 чисел. Найти среднее арифметическое чисел меньших 30.
5. (По Г.Остеру).
На день рождения к дедушке пришли 10 бабушек. Каждая бабушка принесла ему в
подарок t расчесок. Ввести с клавиатуры 10 значений t. Определить, сколько
расчесок получил в подарок совершенно лысый именинник.
ШАБЛОН
ДЛЯ ЗАПОЛНЕНИЯ УЧАЩИМИСЯ
ПРИ
ОБЪЯСНЕНИИ НОВОГО МАТЕРИАЛА
Тема: Символьный тип данных.
Описывается типом char. Переменная типа string состоит из цепочки
символов, т.е. элементов типа char. Величины строкового типа рассматриваются как массив, значениями
которого являются величины типа char. А это значит, что к
отдельному символу строкового типа можно обратиться по его номеру.
Пример: c:= ‘Всем
привет’; if c[7] = ‘ ‘ then ‘До
свиданья’;
Общий вид описания переменных символьного
типа:
имя_переменной : string [кол-во символов]
Примечание: Если
не указано количество символов, то берется по умолчанию 256 символов в строке.
Например, var c:
char; var а: string; var а:
string [20];
Операции над величинами символьного типа.
- «Склеивание»
Пример: var a,b,c: string
[20];
begin
a:=’инфо’; b:=’рматика’;
c;=a+b; writeln (c);
На экране:
_____________
- Задание значений символьного типа: begin c:= ‘!’; read (c);
- Сравнение: =; > ; < ; <> ; <= ; >= ;
Каждому символу равен код от 0 до 255.
Определяется код символа по кодовой таблице ASCII. Сравните
предложенные ниже слова:
‘Валя’ ’Вася’; ’Петя’ ’Петя’;
’Котик’ ’Кот’; ’кошка ’ ’кошка’; ‘Кошка’ ’кошка’;
- Процедура удаления символов: DELETE (str, n, m);
Смысл: удалить из
сроки str m символов, начиная с n-ого.
Пример: а:=
‘Локомотив’; Delete (a, 3, 2); writeln (a);
На экране:
__________________________________
- Процедура вставки символов в строку: INSERT (str1, str2, n);
Смысл: строку str1 вставить в строку str2, начиная с номера n.
Пример: b:=’И ушел на службу’; c:=’солдат’; Insert (c, b, 7); writeln (b);
На экране:
__________________________________
- Функция копирования: COPY (str, n,
m);
Смысл: из строки str, начиная с n-ого скопировать m символов.
Пример: v:=
‘информатика’; f:= copy
(v, 3, 5); writeln (f);
На экране:
__________________________________
- Функция поиска подстроки в строке: POS (str2, str1);
Смысл: возвращает
номер символа в строке str1, с которого начинается строка str2.
Пример: x:= pos (‘раб’,’Карабас-Барабас’); writeln (x);
На экране: _____________________________________
Пример: if Pos (f [i],
s) > 0 then write (f [i]);
- Функция подсчета длины строки: LENGTH (str);
Смысл: определяет
фактическое количество символов в строке, а не объявленного в описании.
Пример: c:= ‘’; dl:=
length(c); writeln (dl);
На экране:
_______________________
Задачи по теме: Символы и строки.
Вариант
№ 1.
1. Составьте программу, которая подсчитывает фактическое
количество букв в слове, которое ввел пользователь с клавиатуры.
2. Составьте программу, которая из слова «форматирование»
получает три других слова путем копирования: «форма», «тир», «ров». Вывести
эти слова в столбик.
3. Составить программу, которая превращает слово «тематика»
в слова «математика» и «тема». Вывести эти слова в столбик.
4. Составьте программу, которая выводит на экран код
символа введенного с клавиатуры. Примечание: функция ord(x) возвращает
число, соответствующее символу х в таблице ASCII.
5. Составьте программу, которая из заданной строки
получала бы новую строку, удалив все «*» и повторив каждый символ, отличный от
знака звездочка дважды. Вывести на экран, полученную новую строку.
Задачи по теме: Символы и строки.
Вариант
№ 2.
1. Составьте программу, которая
подсчитывает фактическое количество букв в слове, которое ввел пользователь с клавиатуры.
2. Составьте программу, которая
из слова «детерминированность» получает три других слова путем копирования: «термин», «нос»,
«ров». Вывести эти слова в столбик.
3. Составить программу, которая превращает слово «систематика»
в слово «математика» и «тема». Вывести эти слова в столбик.
4. Составьте программу, которая выводит на экран код
символа введенного с клавиатуры. Примечание: функция ord(x) возвращает число,
соответствующее символу х в таблице ASCII.
5. Составьте программу, которая из заданной строки
получала бы новую строку, удалив все «# » и повторив каждый символ, отличный от
знака решетка дважды. Вывести на экран, полученную новую строку.
Задачи по теме: Символы и строки.
Вариант
№ 3.
1. Составьте программу, которая
подсчитывает фактическое количество букв в слове, которое ввел пользователь с клавиатуры.
2. Составьте программу, которая из слова «астрономия»
получает три других слова путем копирования: «трон», «ми», «оно». Вывести
эти слова в столбик.
3. Составить программу, которая превращает слово «модельер»
в слово «авиамодель» и «модель». Вывести эти слова в столбик.
4. Составьте программу, которая выводит на экран код
символа введенного с клавиатуры. Примечание: функция ord(x) возвращает
число, соответствующее символу х в таблице ASCII.
5. Составьте программу, которая из заданной строки
получала бы новую строку, удалив все «% » и
повторив каждый символ, отличный от знака процент дважды. Вывести на
экран, полученную новую строку.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.