Некоторые элементы программирования
на Тurbo Pascal
Решение любой задачи происходит обычно на основе теоретических знаний. Дело значительно упрощается, если ученик знает алгоритм решения, т. е. осознает, с чего начать и в какой последовательности продолжать. В свою очередь, учителю необходимо показать пути поиска решения, научить самостоятельно, выбрать правильный алгоритм решения задачи. В практические работы также включены задания творческого характера, при решении которых потребуется применение изученного алгоритма.
1. При оформлении программы на языке Turbo Pascal учащиеся должны знать, что программа состоит из частей:
· Стандартная часть, которая участвует во всех программах
решения задач и мало чем отличается друг от друга;
· Тело программы – оно меняется для каждой задачи.
Стандартная часть программы приведена ниже и содержит название программы, выбранных модулей для обслуживания программы, описание меток, констант, файлов, переменных, связь с внешними файлами Input и Output , открытие и закрытие файлов.
program a2;
uses crt;
label v0;
const k1='Input2.PAS';
k2='Output2.PAS';
var Input2,Output2 :text;
T:array[1..100] of integer;
j,k :integer;n,m,d,a,i :longint;
begin clrscr; textcolor(10); textbackground(5);
assign(INPUT2,k1); reset(INPUT2);
assign(Output2,k2); rewrite(Output2);
read(Input2,n); close(Input2);
………………………………….
v0: ………………………………..
…………………………………..
close(Output2); end;
2. Часто в задачах требуется обработка длинных файлов (напр., файл содержит до 6.000000 целых чисел и т. д.), такие файлы невозможно вместить в массив и поэтому их надо обрабатывать по элементу до достижения конца файла. В программе это выглядит так:
While not SeekEof (Input) do begin
Read(Input,n);
Write(n:3);
……………………
end;
3. Почти в каждой задаче встречаются вложенные циклы,
а самые распространенные из них упорядочивание данных.
· упорядочивание данных по возрастанию:
for i:=1 to n-1 do
for j:=i+1 to n do
if X[i]>X[j] then begin
d:=X[i]; X[i]:=X[j]; X[j]:=d; end;
· упорядочивание данных по убыванию:
for i:=1 to n-1 do
for j:=i+1 to n do
if X[i]<X[j] then begin
d:=X[i]; X[i]:=X[j]; X[j]:=d; end;
4. Элементы комбинаторики всегда присутствуют в областных олимпиадах по информатике, но иногда они встречаются и в районных олимпиадах.
· Сочетания данных по два числа;
Из 10 натуральных чисел надо составить двузначные числа:
for i:=1 to 9 do
for j:=i+1 to 10 do
begin d:= i * 10 + j; writeln(d:3); end;
· Сочетания данных по три числа;
Из 10 натуральных чисел надо составить трехзначные числа:
for i:=1 to 8 do
for j:=i+1 to 9 do
for k:=j+1 to 10 do
begin d:= i * 100 + j * 10 + k; writeln(d:4); end;