ЦЕНТР ДЕТСКОГО (ЮНОШЕСКОГО) НАУЧНО-ТЕХНИЧЕСКОГО ТВОРЧЕСТВА
![]() |
«ПРОГРАММИРОВАНИЕ В СИСТЕМЕ TURBO PASCAL»
Часть 1
Базовые конструкции языка Pascal
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ
для учащихся заочной школы юных техников, обучающихся по направлению «программирование»
Автор - педагог дополнительного образования ЦНТТ
г. Армавир
2011
Пояснительная записка
Предлагаемое методическое пособие представляет собой сборник заданий к первой части учебного курса «Программирование в системе Turbo Pascal» и предназначено для детей и молодежи в возрасте от 14 до 18 лет, обучающихся в заочной школе юных техников по направлению «Программирование».
Цель данного пособия - помочь учащимся в проведении самостоятельной работы по изучению основ программирования и разработке компьютерных программ в системе программирования Turbo Pascal.
В методической разработке содержатся учебный план «Базовые конструкции языка Pascal» - первого модуля курса «Программирование в системе Turbo Pascal», порядок выполнения контрольных заданий и варианты заданий к тематическим блокам модуля. Каждое задание содержит теоретический материал, разбор характерных примеров и задач, методические рекомендации по их выполнению. В конце каждого задания дается перечень задач для самостоятельного решения и список вопросов для самоподготовки.
Учебно-тематический план
Часть 1. Базовые конструкции языка Pascal
¨ Работа в среде Turbo Pascal на примере разработки программ линейной структуры. Вычисление арифметических выражений.
¨ Организация ветвлений. Условный оператор IF. Оператор выбора Case..of.
¨ Циклы for, while, repeat... until.
¨ Работа с одномерными массивами.
¨ Работа с двумерными массивами.
¨ Символьные и строковые типы данных в Pascal.
¨ Использование процедуры и функции в Pascal.
¨ Комбинированный тип Запись.
¨ Файловый тип данных. Работа с файлами.
Порядок выполнения контрольных заданий
1. Внимательно прочитать и уяснить условие задачи, которую предстоит решить.
2. Ознакомиться с необходимым теоретическим материалом, примерами решения задач. Использовать список рекомендуемой литературы.
3. Разработать алгоритм и написать текст программы. Отладить программу на компьютере.
4. Подготовить отчет.
Каждый отчет оформляется в виде пояснительной записки и должен содержать следующие элементы:
¨ титульный лист;
¨ текст пояснительной записки;
¨ список использованной литературы;
Содержание пояснительной записки отчета:
1. Постановка задачи.
2. Краткие сведения об особенностях применяемых операторов и методов (теоретическое введение).
3. Описание программы:
¨ описание алгоритма решения задачи (в виде блок-схемы);
¨ описание входных и выходных данных программы;
¨ перечень входных данных (тестовые примеры)
¨ программный код на языке Pascal.
ЗАДАНИЕ № 4
Работа с одномерными массивами
Цель работы. Разработать алгоритмы и программы решения задач. Использовать оператор For для перебора элементов массива. Задав одномерный массив целочисленных данных A в одном из заданных форматов byte, word, integer или longint, реализовать обработку массива. Исходные данные задать самостоятельно, учитывая формат элементов массива A. Исходные данные должны вводиться с проверкой на область допустимых значений.
Теоретическая часть:
Массивы - структурированный тип данных с элементами одного типа. Количество элементов определяет размер массива. Например, массив составляют заработные платы сотрудников подразделения предприятия, здесь число элементов равно числу сотрудников; массив образуют набор чисел, их количество равно числу элементов массива. Номер элемента массива называется его индексом. Для описания массива предназначено словосочетание array of (массив из).
Массив должен быть описан либо в разделе типов TYPE следующим образом:
TYPE
<имя_типа> = ARRAY [тип индекса] OF <тип_элементов_массива>;
VAR
<имя_массива>: <имя_типа>;
либо без представления типа в разделе описания типов данных:
VAR
<имя_массива>: ARRAY [тип индекса] OF <тип_элементов_массива>;
где тип индекса (перечисляемый или интервальный) определяет границы изменения значений индекса;
Например:
1) VAR
a: ARRAY [1..5] OF real;
Описан массив а действительных чисел, который состоит из 5 элементов.
2) TYPE
tl = ARRAY [1..4] OF integer;
t = ARRAY [1..5] OF t1;
VAR
d: t;
к : t1;
Ввод элементов массива может осуществляться путем:
1) поэлементного ввода
for i:=1 to n do
readln(a[ i ]);
2) c использованием заданных формул
3) для ввода больших массивов удобна специальная функция – генератор случайных чисел random(x).
Запись функции: random(x) – генерируется случайное число диапазона (0, x-1), т. е. random(50) - генерируется случайное число от 0 до 49. Если необходимо генерировать числа из диапазона (10, 88), то записываем
a[i] := 10 + random(79);
Для переустановки базы генерации, т. е. чтобы каждый раз генерировалась разная последовательность случайных чисел, применяется функция randomize.
Пример обработки одномерного массива
Дан одномерный массив MAS(12) из вещественных чисел. Найти наибольший элемент массива и его индекс.
program pr4_1;
const n = 12; {константа n определяет размер массива в описании}
type
m = array [1..n] of real ; { m – тип массива mas }
var
mas : m ;
i, num : integer;
max : real;
begin
for i:=1 to n do {ввод элементов массива mas по 1 в строке}
begin
writeln(‘введите элемент массива’, i) ;
read (mas[i]);
end;
num :=1; max := mas [1];
for i: =2 to n do
if mas [ i ] > max then begin max := mas [i ]; num := i ;end;
writeln; { вывод массива в строку}
for i:=1 to n do
write (mas [ i ]:5:1 );
writeln;
writeln (‘максимальный элемент = ‘, max:4:1,‘ его индекс=’ ,num );
readln;
end.
Переменная max сравнивается с элементами массива, и если элемент массива больше max, то переменной max присваивается значение элемента массива, а переменной num - индекс этого элемента. По окончании цикла переменная max будет иметь значение, равное максимальному элементу массива, а переменная num - значение индекса этого элемента.
Пример. Заполнить массив из 20 элементов случайными числами из диапазона (15,40) и вывести элементы массива на экран
program massiv;
uses crt;
var mas:array[1..20] of integer;
i:integer;
begin
clrscr;
randomize;
writeln('Элементы массива'); writeln;
for i:=1 to 20 do
begin
mas[i]:=15+random(26);
write(mas[i],' ');
end;
readln;
end.
Задачи для самостоятельного решения:
1. Дана последовательность натуральных чисел a1, a2, ..., аn. Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.
2. Дана последовательность чисел a1, a2, ..., аn . Указать наименьшую длину числовой оси, содержащую все эти числа.
3. Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.
4. Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.
5. При поступлении в вуз абитуриенты, получившие «двойку» на первом экзамене, ко второму не допускаются. В массиве А[n] записаны оценки экзаменующихся, полученные на первом экзамене. Подсчитать, сколько человек не допущено ко второму экзамену.
6. Пригодность детали оценивается по размеру В, который должен соответствовать интервалу (А - 5, А + 5). Определить, имеются ли в партии из N деталей бракованные. Если да, то подсчитать их количество, иначе выдать отрицательный ответ.
7. У вас есть доллары. Вы хотите обменять их на рубли. Есть информация о стоимости купли-продажи в банках города. В городе N банков. Составьте программу, определяющую, какой банк выбрать, чтобы выгодно обменять доллары на рубли.
8. У прилавка магазина выстроилась очередь из п покупателей. Время обслуживания i-того покупателя равно ti(i =1, ...., n). Определить время Сi пребывания i-го покупателя в очереди.
9. Секретный замок для сейфа состоит из 10 расположенных в ряд ячеек, в которые надо вставить игральные кубики. Но дверь открывается только в том случае, когда в любых трех соседних ячейках сумма точек на передних гранях кубиков равна 10. (Игральный кубик имеет на каждой грани от 1 до 6 точек.) Напишите программу, которая разгадывает код замка при условии, что два кубика уже вставлены в ячейки.
10. В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
11. Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2 см, а каждый пасмурный день опускается вниз на 1 см. В начале наблюдения улитка находилась в А см от земли на В-метровом дереве. Имеется 30-элементный массив, содержащий сведения о том, был ли соответствующий день наблюдения пасмурным или солнечным. Написать программу, определяющую местоположение улитки к концу 30-го дня наблюдения.
12. Дан целочисленный массив с количеством элементов n. «Сожмите» массив, выбросив из него каждый второй элемент. Примечание. Дополнительный массив не использовать.
13. Задан массив с количеством элементов N. Сформируйте два массива: в первый включите элементы исходного массива с четными номерами, а во второй - с нечетными.
Контрольные вопросы
1. Что такое массив?
2. Как описывается одномерный массив?
3. Как обратиться к некоторому элементу массива? Что общего между всеми элементами массива?
4. Способы заполнения массива.
Литература:
1. Бабушкина по Турбо Паскалю.- М.: АБФ, 1998.
2. Емелина программирования на языке Паскаль. - М.: Финансы и статистика,1997.
3. Turbo Pascal. Практическое программирование.- М.: ПРИОР, 1997 .
4. Изучаем Turbo Pascal. – СПб.: Питер, 2001 .
5. курс, С-Петербург, 2002
6. Фаронов -Паскаль 7.0. Начальный курс. Учебное пособие.- М.:"Нолидж",1998.



