- •31 Информатика (лек.) – гтк – 2 семестр (2012 г.) Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языке Pascal
- •1.2. Элементы программы в языке Pascal
- •1.3. Типы данных в языке Pascal
- •1.4. Операции в языке Pascal
- •1.5. Выражения в языке Pascal
- •1.6. Стандартные функции в языке Pascal
- •1.7. Операторы языка Pascal
- •Тема № 2. Программирование базовых алгоритмов
- •2.1. Программирование последовательных вычислений
- •2.2. Программирование разветвлений
- •2.3. Программирование циклов
- •Тема № 3. Программирование задач с массивами
- •3.1. Одномерные массивы
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Особенности элементов одномерного массива
- •3.2. Двумерные массивы
- •Фрагменты вычисления характеристик двумерного массива
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Особенности элементов квадратных матриц
- •3.3. Перестановка и сортировка элементов массива
- •Тема № 4. Программирование подпрограмм и структурных типов данных
- •4.1. Подпрограммы
- •4.2. Программирование задач с функциями
- •4.3. Программирование задач с процедурами
- •4.4. Программирование задач с файлами
- •4.5. Программирование задач с символами и строками
- •4.6. Программирование задач с записями
- •4.7. Программирование задач со множествами
- •Тема № 5. Знакомство с численными методами
- •5.1. Приближённые вычисления
- •5.2. Методы решения нелинейных уравнений
- •5.3. Методы решения систем уравнений
- •5.4. Методы решения дифференциальных уравнений
- •5.5. Методы численного интегрирования
4.3. Программирование задач с процедурами
Заголовок описания процедуры имеет вид:
procedure Proc ( SFP1 : T1 ; … ; SFPN : TN ) ;
где procedure – процедура, Proc – имя процедуры, SFP1 – список формальных параметров 1-й, SFPN – список формальных параметров N-й, T1 – тип параметров в 1-м списке, TN – тип параметров в N-м списке.
Это означает, что задаётся подпрограмма-процедура с именем Proc, зависящая от формальных параметров из списка SFP1 типа T1 , … из списка SFPN типа TN, а также выполняющая какие-либо действия.
Вызов процедуры из другой части программы имеет вид:
Proc ( SFP )
где Proc – имя процедуры, SFP – список фактических параметров.
Это означает, что выполняются действия в теле процедуры Proc, зависящей от фактических параметров из списка SFP, причём вызов процедуры не может осуществляться в составе выражения.
Задача 2.
Условие задачи. В двумерном массиве A из 3 строк и 4 столбцов вычислить сумму и произведение отрицательных элементов с использованием подпрограммы-процедуры, именованных констант и типов данных.
Программа.
Program z2;
Const m=3; n=4;
Type TT=array [1..m,1..n] of real;
Var A:TT; i,j:integer; s,p:real;
Procedure SumPro(B:TT; m,n:integer; var s,p:real);
var i,j:integer;
begin
s:=0; p:=1;
for i:=1 to m do
for j:=1 to n do
if B[i,j]<0 then
begin
s:=s+B[i,j];
p:=p*B[i,j];
end;
end;
Begin
for i:=1 to m do
for j:=1 to n do
read(A[i,j]);
SumPro(A,3,4,s,p);
writeln(s,p);
End.
4.4. Программирование задач с файлами
Файлы – упорядоченные наборы данных различного типа, хранящиеся в памяти.
В языке Pascal файлы бывают:
Текстовые (типа Text).
Типизированные (типа File of …).
Нетипизированные (типа File).
Для текстовых файлов обычно применяются следующие стандартные процедуры:
Assign(FP,F) – связь файловой переменной FP с именем файла F.
Reset(FP) – открытие файла, связанного с файловой переменной FP, для чтения.
ReWrite(FP) – открытие файла, связанного с файловой переменной FP, для записи новых данных с удалением старых.
Append(FP) – открытие файла, связанного с файловой переменной FP, для записи новых данных с добавлением к старым.
Close(FP) – закрытие файла, связанного с файловой переменной FP.
Read(FP,P1,…,PN) – ввод значений переменных P1, … , PN из файла, связанного с файловой переменной FP.
ReadLn(FP,P1,…,PN) – ввод значений переменных P1, … , PN из файла, связанного с файловой переменной FP, и перевод указателя в файле на новую строку.
Write(FP,V1,…,VN) – вывод значений выражений V1, … , VN в файл, связанный с файловой переменной FP.
WriteLn(FP,V1,…,VN) – вывод значений выражений V1, … , VN в файл, связанный с файловой переменной FP, и перевод указателя в файле на новую строку.
Задача 3.
Условие задачи. Ввести матрицу A размером 33 из файла a1.txt, заменить в ней элементы выше главной диагонали на нули, а затем вывести эту матрицу в файл a2.txt.
Программа.
Program z3;
Var
A:array[1..3,1..3] of real;
i,j:integer;
f1,f2:text;
Begin
assign(f1,'a1.txt');
assign(f2,'a2.txt');
reset(f1);
rewrite(f2);
for i:=1 to 3 do
for j:=1 to 3 do
read(f1,A[i,j]);
for i:=1 to 3 do
for j:=1 to 3 do
if i<j then A[i,j]:=0;
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(f2,A[i,j]);
writeln(f2,'');
end;
close(f1);
close(f2);
readln;
End.
Контрольный пример.
Исходные данные: |
. |
Результаты: |
. |