ТОП 10:

Вычисление суммы, произведения, количества элементов массива.




Вычисление суммы элементов.

Summa := 0;

Fori:=1 to3do

Forо:=1 to4do

Summa := summa + a[i,j];

Вычисление произведения элементов.

proiz := 1;

Fori:=1 to3do

Forо:=1 to4do

Proiz := Proiz * a[i,j];


Вычисление суммы (произведения) элементов, удовлетворяющих заданному условию.

Summa := 0;

Fori:=1 tondo

Forj:=1 tomdo

Ifa[i,j] >0ThenSumma := summa + a[i,j];

Нахождение количества элементов, удовлетворяющих заданному условию.


найти количество положительных элементов в каждой строке массива.

Fori:=1 tondo

Begin

Коlich:=0;

Forj:=1 tomdo

Ifa[i,j] > 0Then

kolich:= kolich + 1;

Writeln(‘Колич. Положит. Знач. в’,i,‘строке =’,kolich);

End;

найти количество чётных элементов массива.

Коlich:=0;

Fori:=1 tondo

Forj:=1 tomdo

Ifa[i,j] mod 2 = 0Then

kolich:= kolich + 1;

Writeln(‘ Положит. Знач. ’,kolich);

Поиск минимального (максимального) элемента массива

Алгоритм поиска минимального (максимального) элемента в неупорядоченном массиве довольно очевиден: делается предположение, что первый элемент массива является минимальным (максимальным), затем остальные элементы массива последовательно сравниваются с этим элементом. Если во время очередной проверки обнаруживается, что проверяемый элемент меньше (больше) принятого за минимальный (максимальный), то этот элемент принимается за минимальный (максимальный) и продолжается проверка оставшихся элементов.

Найти максимальный (минимальный) элемент массива и его индекс.

 

max := а[1,1]; { max - максимальный, элемент}

Nmax: = 1; { Nmax- номер макс. элемента}

Fori:=1 to 3 do

Forj:=1 to 4 do

Ifa[i,j] > max Then ( Ifa[i] < min Then )

Begin

max:= a[i,j];

Nmax: = [i, j];

end;

writeln (‘макс. значение =’,max,’индекс макс. элемента’,Nmax);

 

1)если в условии знак > то мы находим максимальный элемент, если знак <то минимальный.

2) если неравенство строгое (>или <) то мы находим первый максимальный или минимальный элемент, а если нестрогое (>=или<=) то последний.

 

Сортировка двумерного массива.

 


по строкам:

for i:=1 to 3 do

for j:=1 to 4 do

if a[i,j]<a[i,j+1] then

begin

tmp:=a[i,j];

a[i,j]:=a[i,j+1];

a[i,j+1]:=tmp;

end;

 

по столбцам:

for j:=1 to 4 do

for i:=1 to 2 do

if a[i,j]<a[i+1,j] then

begin

tmp:=a[i,j];

a[i,j]:=a[i+1,j];

a[i+1,j]:=tmp;

end;


 

 

Работа с файлами

Язык Pascal позволяет вводить исходные данные для программы не только с клавиатуры, но и из текстового файла. А также позволяет выводить результат выполненной программы не только на экран монитора, это не всегда удобно, но и можно сохранить результаты в файле, на диске компьютера.

1) На диске больше места, чем в оперативной памяти.

2) В файл можно записывать данные разного типа.

Файл, с точки зрения программы на языке Pascal, — это именованная структура данных, представляющая собой последовательность элементов одного типа. Количество элементов файла практически не ограничено, размеры файла не фиксированы.

 

Описание (объявление) файла

Как и любая переменная программы, файл должен быть объявлен в разделе описания переменных. При объявлении файла указывается тип элементов файла. В общем виде объявление файла выглядит так:

 

Имя : file of Тип элементов

Примеры:

res : file of char; { файл символов }

koef : file of real; { файл вещественных чисел }

f : file of integer; { файл целых чисел }

Файл, компонентами которого являются данные символьного типа (char) называется текстовым. Описание file ofchar может быть заменено на

text, т.е. описание res : file of char равнозначно res : text.

 

Назначение файла (Процедура Assign)

Описание (объявление) файловой переменной задает только тип компонентов файла. Чтобы программа могла выводить данные в файл или читать данные из файла, необходимо указать конкретный файл, т. е. задать имя файла. Имя файла задается вызовом процедуры assign, связывающей файловую переменную с конкретным файлом.

Описание процедуры assign : assign (var f : text; имя файла : string)

Примеры: assign ( f,’a:\result.text’);

assign ( f,’\uchahiisj\ivanov\korni.text’);

( f- файловая переменная; ’a:\result.txt’- полное имя файла.)

или

fname:=’otchet.txt’;

assign(f,fname);

 

Имя файла задается согласно принятым в MS-DOS правилам (8 букв латинского алфавита, цифр, а расширение состоит из трёх латинских букв, например: ’otchet.txt’ ). Оно может быть полным, т. е. состоять не только непосредственно из имени файла, но и включать путь к файлу.

Файл может быть открыт для чтения из файла или для записи в файл.

 

Ввод данных из файла

Чтобы вводить исходные данные для программы из текстового файла, нужно: объявить файловую переменную типа text, назначить ей при помощи инструкции assign имя файла, из которого будут читаться данные, открыть файл для чтения (ввода из файла) и прочитать данные (ввести данные в программу), используя инструкцию read илиreadln.

 

Открытие файла для чтения

Процедура Reset, открывает существующий файл данных, имя которого перед этим было связано при помощи процедуры assign с некоторой файловой переменной, указанной в процедуре Reset как параметр. Например, пара операторов

assign( f, ‘c:\data.txt’);

reset(f);

открывает файл data.txt.

 

Чтение из файла

Чтение из файла выполняется при помощи инструкций read и readln, которые в общем виде записываются так:

read (Файловая Переменная, Список Переменных) ;

readln (Файловая Переменная, Список Переменных) ;

 

где Файловая Переменная – перееменная типа text;

Список Переменных - имена переменных, разделенные запятыми.

read (f,a,b,c);

readln (f,b);

 

program chtenieizfaila;__

var f: file of integer; a,b,c: integer;

begin

assign(f,’data.dat’);

reset(f);

read(a,b,c);

end.

Чтение до конца файла

Функцией EOF Чтобы прочитать весь файл, считать все данные. Другими словами, достигнуть при чтении конца файла. Нужно воспользоваться функцией eof (End Of File - конец файла).

Пример:

while not eof(f) do{пока не достигнут конец файлаf}

read(f,n) {чтение из файла f , данных }

 

Данный цикл будет выполнять считывание порций данных из файла, связанного с файловой переменной f , до тех пор, пока не будут считаны все данные

program chtenie iz faila do konca faila;

var f: text; a,b,c: integer;

begin

assign(f,’data.txt’);

while not eof(f) do{пока не достигнут конец файлаf}

read(f,n) {чтение из строки, данных }

end.

 

Чтение до конца файла

Функцией EOLN Что бы прочитать строку в текстовом файле, считать данные только из этой строки используется функция eolnпризнак конца строки в текстовом файле.

Пример:

while not eoln(f) do{пока не достигнут конец строки}

read(f,n) {чтение из файла f данных }

 

Данный цикл будет выполнять считывание порций данных из строки, до тех пор, пока не будут считаны все данные этой строки.

 

 

Вывод (запись) в файл

 

Инструкция вывода в файл

Непосредственный вывод в файл осуществляется при помощи

Инструкции write или writeln, у которой список выводимых значений начинается с переменной типа text, идентифицирующей файл для вывода. Например, если переменная f имеет тип text, то инструкция вывода в файл может быть такой:

Write (f,’Корни уравнения’,x1,x2);

Однако для того чтобы инструкция Write записала (вывела) данные в файл, не достаточно назначить имя файловой переменной. Нужно еще открыть файл для записи (вывода в файл).

 

 

Открытие файла для записи (вывода в файл)

Перед выводом в файл необходимо открыть файл. Если программа, формирующая выходной файл, уже использовалась, то возможно, что файл с результатами работы программы уже есть на диске. Поэтому программист должен решить, как поступить со старым файлом: заменить старые данные новыми или добавить новые данные к старым. Это определяется во время открытия файла.

Возможны следующие режимы (варианты) открытия файла для записи в него данных:

· Перезапись (запись нового файла поверх существующего или создание нового файла);

· Добавление в существующий файл.

Создание нового файла или замена существующего файла

Процедура rewrite. Чтобы открыть файл в режиме создания нового файла или замены существующего, необходимо вызвать процедуру rewrite, указав в качестве параметра файловую переменную. Процедуру Rewrite применяют, если при открытии файла старое его содержимое необходимо уничтожить, а на его место записать новое.

Пример: Открыть файл в режиме создания нового файла и записывает в него 5 раз слово Информатика.

Programnew_fail;

varf : text; { текстовый файл }

i : integer;

Begin

assign (f,’test.txt’);

reset (f); { открыть в режиме записи }

For i:=1 to 5 do

Writeln (f, ' Информатика ', i ) ;

Close(f); { закрыть файл }
end.

В результате выполнения программы на диске появляется файл test.txt.Распечатка файлаtest.txt.:

 

Информатика 1

Информатика 2

Информатика 3

Информатика 4

Информатика 5

Текст программы, которая открывает уже ранее существующий файлtest.txt.и записывает в него две новые строки удаляя прежние.

 

Programreplace_fail;

varf : text; { текстовый файл }

i : integer;

Begin

assign ( f, ’test.txt’);

rewrite (f); { открыть в режиме перезаписи }

For i:=6 to 7 do

Writeln (f, ' Информатика ', i ) ;

Close(f); { закрыть файл }
end.

 

В результате выполнения программы содержимое файла test.txt изменяется. Распечатка файла:

Информатика 6

Информатика 7







Последнее изменение этой страницы: 2016-04-08; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.236.35.159 (0.014 с.)