Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

Summa:= 0;

For i:=1 to 3 do

For о:=1 to 4 do

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

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

proiz:= 1;

For i:=1 to 3 do

For о:=1 to 4 do

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


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

Summa:= 0;

For i:=1 to n do

For j:=1 to m do

If a[i,j] >0 Then Summa:= summa + a[i,j];

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


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

For i:=1 to n do

Begin

Коlich:=0;

For j:=1 to m do

If a[i,j] > 0 Then

kolich:= kolich + 1;

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

End;

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

Коlich:=0;

For i:=1 to n do

For j:=1 to m do

If a[i,j] mod 2 = 0 Then

kolich:= kolich + 1;

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

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

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

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

 

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

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

For i:=1 to 3 do

For j:=1 to 4 do

If a[i,j] > max Then (If a[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 Тип элементов

Примеры:

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

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

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

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

text, т.е. описание r es: file of char равнозначно r es: 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 раз слово Информатика.

Program new_fail;

var f: 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. и записывает в него две новые строки удаляя прежние.

 

Program replace_fail;

var f: 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; просмотров: 726; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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