2 / 2 / 0 Регистрация: 18.02.2011 Сообщений: 93 |
|
1 |
|
Найти сумму чисел типизированного файла07.04.2011, 21:17. Показов 1399. Ответов 6
Имеется типизированный файл с числами Найти сумму к1-го и к2-го чисел файла.
1 |
KaiTheCat К.О. 534 / 499 / 344 Регистрация: 26.03.2011 Сообщений: 1,141 |
||||
08.04.2011, 19:08 |
2 |
|||
так чтоль?
1 |
the_crow последний из ворон 111 / 111 / 63 Регистрация: 02.02.2011 Сообщений: 334 |
||||
08.04.2011, 22:41 |
3 |
|||
нет, скорее так=)
1 |
К.О. 534 / 499 / 344 Регистрация: 26.03.2011 Сообщений: 1,141 |
|
08.04.2011, 22:55 |
4 |
а по-моему нет
1 |
2857 / 1986 / 788 Регистрация: 23.09.2010 Сообщений: 4,877 |
|
08.04.2011, 23:05 |
5 |
KaiTheCat Имеется типизированный файл и этим всё сказано
1 |
К.О. 534 / 499 / 344 Регистрация: 26.03.2011 Сообщений: 1,141 |
|
08.04.2011, 23:10 |
6 |
мле до меня дошло что здесь хотят><
1 |
SuPeR XaKer 2857 / 1986 / 788 Регистрация: 23.09.2010 Сообщений: 4,877 |
||||
08.04.2011, 23:21 |
7 |
|||
Решение
1 |
uses crt; var i,n,k,q:byte; num,sum: integer; arr: array [1..128] of integer; f: file of integer; begin clrscr; assign(f,'digits.txt'); //формирование типизированного файла, если необходимо rewrite(f); write('Введите количество цифр: '); readln(n); for i:=1 to n do begin write('Введите ', i, ' цифру: '); readln(num); write(f,num); end; close(f); //сформировали файл,теперь работаем с файлом //для удобства сделал проще. Читаю из файла в массив, а потом просто работаем с этим массивом num:=0; sum:=0; reset(f); while not eof (f) do begin inc(num); read(f,arr[num]); end; close(f); writeln('Цифры в файле: '); for i:=1 to num do begin write(' ',arr[i],' '); sum:=sum+arr[i]; end; writeln; write('Введите k: '); readln(k); write('Введите q: '); readln(q); writeln('Сумма 1 и 2: ', arr[1]+arr[2]); if (k>num) or (q>num) then writeln('Сумма k и q элементов не существует ') else writeln('Сумма k и q: ', arr[k]+arr[q]); writeln('Произведение 1 и последнего: ', arr[1]*arr[num]); writeln('Сумма всех: ', sum); readln; end.
На занятии будет рассмотрена работа с типизированными файлами в Паскале и разобраны конкретные решенные примеры задач
Содержание:
- Типизированные файлы в Паскаль
- Описание:
- Открытие файла
- Чтение из текстового файла
- Запись в текстовый файл
- Процедуры работы с файлом
- Символьные и строковые файлы (типизированные)
- Последовательный доступ
- Числовые файлы (типизированные)
- Последовательный доступ
- Прямой доступ
Типизированные файлы в Паскаль
Типизированный файл может быть описан как файл любого типа (кроме типа file). Описывают подобный файл словосочетанием file of с последующим указанием типа компонентов файла.
Файл с типом, т.е. типизированный файл состоит из последовательности записей (компонент), имеющих одинаковую длину и одинаковый внутренний формат.
Записи (компоненты) следуют непрерывно друг за другом. К данным такого файла можно обращаться как последовательно, так и выборочно — с прямым доступом.
При последовательном доступе записи (компоненты) размещаются в файле последовательно в порядке их поступления.
При прямом доступе данные размещаются в определенных областях, имеющих последовательную нумерацию, и начинаются с нуля. Движение по записям осуществляется посредством так называемого указателя, перемещение которого осуществляется при помощи процедур (seek pascal). После открытия файла указатель (номер текущей компоненты) стоит в самом начале, т.е. на нулевом компоненте. После каждого прочтения или записи указатель сдвигается к следующему компоненту.
Описание:
var f1: file of char; f2: file of integer;type t = file of real; var f: t;type st = record a: string[10]; b: integer; end; var dan: file of st; </ol>
Открытие файла
Чтение из текстового файла
Read (f, список переменных);
Запись в текстовый файл
Write (f, список переменных); WriteLn (f, список переменных);
Процедуры работы с файлом
Смещение указателя файла:
Процедура seek в Паскаль смещает указатель файла f на n-ную позицию. Используется при прямом доступе к файлу:Процедура возвращающая размер файла:
функция проверки конца файла:
Символьные и строковые файлы (типизированные)
Последовательный доступ
Пример: (последовательный доступ) Посимвольно считывать данные из файла и выводить их на экран – каждый символ с новой строки
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var f: file of char; c: char; begin assign (f, 'c:file.txt'); reset (f); while not eof (f) do begin {пока не достигнут конец файла} read (f, c); writeln (c); end; close (f); readln end. |
Пример: (последовательный доступ) Записывать в файл определенное кол-во символов (символы и их количество вводит пользователь)
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
var f: file of char; c: char; i, n: byte; begin assign (f, 'c:file.txt'); rewrite (f); write ('Количество символов: '); readln (n); for i:=1 to n do begin write ('Введите символ: '); readln (c); write (f, c); end; close (f); end. |
Пример: (последовательный доступ) Дан символьный файл, содержащий, по крайней мере, один символ пробела. Удалить все его элементы, расположенные после первого символа пробела, включая и этот пробел.
* Предварительно следует программно записать в исходный файл символы
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
var F_in,F_out: File of Char; a,C:Char; i:integer; begin Assign(F_in,'c:text.txt'); ReWrite(F_in); write('Какие символы записываем в исходный файл?'); for i:=1 to 5 do begin read(a); write(F_in,a); end; Reset(F_in); Assign(F_out,'c:text1.txt'); ReWrite(F_out); Read(F_in,C); while (not eof(F_in)) and (C<>' ') do begin Write(F_out,C); Read(F_in,C); end; Close(F_out); Close(F_in); Erase(F_in); Rename(F_out,'c:text.txt'); end. |
pascal file string1. Дан символьный файл, содержащий, по крайней мере, один символ пробела. Удалить все его элементы, расположенные после последнего символа пробела, включая и этот пробел.
Пример: Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наименьшей длины (в том же порядке).
Пример:
Введите строки исходного файла: первая строка вторая строка длинная третья строка строка пятая строка результирующий файл: строка
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
var S: String; F_in,F_out: file of string; MinLen: integer; i:integer; begin Assign(F_in,'c:text.txt'); Rewrite(F_in); write('Введите строки исходного файла:'); for i:=1 to 5 do begin read(s); write(F_in,s); end; Reset(F_in); Assign(F_out,'c:text1.txt'); Rewrite(F_out); MinLen:=-1; while (not eof(F_in)) do begin Read(F_in,S); if (Length(S)<MinLen) or (MinLen=-1) then MinLen:=Length(S); end; Close(F_in); Reset(F_in); while (not eof(F_in)) do begin Read(F_in,S); if Length(S)=MinLen then Write(F_out,S); end; Close(F_in); Close(F_out); end. |
pascal file string2. Дан строковый файл. Создать новый строковый файл, содержащий все строки исходного файла наибольшей длины (в обратном порядке).
Числовые файлы (типизированные)
Последовательный доступ
Пример: Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке.
Внимание: числа в исходном файле должны быть записаны программно! Иначе считывание будет происходить неверно.
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
var S,s1:String; F_in,F_out: File of Integer; k,i:integer; a:array[1..100] of integer; begin S:='c:text.txt'; Assign(F_in,S); rewrite(F_in); for i:=1 to 10 do write(F_in,i); {записываем в исходный файл числа} close(F_in); Reset(F_in); S1:= 'c:text1.txt'; Assign(F_out,S1); ReWrite(F_out); k:=1; writeln('считанные из файла числа:'); while (not eof(F_in)) do begin Read(F_in,a[k]); writeln(a[k]); k:=k+1; end; Close(F_in); writeln('записываемые числа в файл'); for i:=k-1 downto 1 do begin Write(a[i]:3); Write(F_out,a[i]); end; Close(F_out); end. |
pascal file 2. Дан файл вещественных чисел. Создать два новых файла, первый из которых содержит элементы исходного файла с нечетными номерами (1,3,…), а второй — с четными (2,4,…).
Внимание: числа в исходном файле должны быть записаны программно! Иначе считывание будет происходить неверно.
pascal file 3. Дан файл вещественных чисел. Найти сумму его элементов с четными номерами.
Внимание: числа в исходном файле должны быть записаны программно! Иначе считывание будет происходить неверно.
Пример: Дан файл вещественных чисел. Найти его первый локальный минимум (локальным минимумом называется элемент, который меньше своих соседей).
* Для решения не использовать массивы.
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
var S:String; F_in: File of Real; El2,El1,El:Real; i:integer; a:real; begin Assign(F_in,'c:text.txt'); rewrite(F_in); writeln ('Введите вещественные числа'); for i:=1 to 5 do begin read(a); write(F_in,a); {заполняем исходный файл числами} end; close(F_in); Reset(F_in); Read(F_in,El); Read(F_in,El1); Read(F_in,El2); writeln('Результат ='); if (El1<El)and(El1<El2) then Writeln('s',El1:4:2) else begin while (not eof(F_in)) and not((El>El1) and (El1<El2)) do begin El:=El1; El1:=El2; Read(F_in,El2); end; if (El>El1) and (El1<El2) then Writeln(El1:4:2) else if eof(F_in) and (El1>El) then Writeln(El:4:2); end; Close(F_in); end. |
pascal file 4. Дан файл вещественных чисел. Найти его последний локальный максимум (локальным максимумом называется элемент, который больше своих соседей).
Пример:
Дан файл вещественных чисел. Заменить в нем все элементы на их квадраты.
* Перед выполнением программы необходимо узнать в какой папке сохраняются файлы, созданные программой ABC.
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
var S:String; F_in,F_temp: File of Real; temp:Real; begin Assign(F_in,'text.txt'); Reset(F_in); Assign(F_temp,'text1.txt'); ReWrite(F_temp); while (not eof(F_in)) do begin Read(F_in,temp); temp:=sqr(temp); Write(F_temp,temp); end; Close(F_in); Close(F_temp); Erase(F_in); {удаление файла} Rename(F_temp,'text.txt'); {Переименование файла} end. |
Здесь следует обратить внимание на то, что файлы, скорее всего, сохраняются в папке : C:Usersимя пользователяAppDataLocalVirtualStore
pascal file 5. Дан файл вещественных чисел. Поменять в нем местами минимальный и максимальный элементы.
Алгоритм:
Прямой доступ
Пример: (прямой доступ) В файле заменить символ определенной позиции. Позицию символа и сам новый символ запросить у пользователя. Использовать процедуру seek Паскаль
Показать решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var f: file of char; c: char; n: integer; begin assign (f, 'c:text.txt'); reset (f); write('Введите позицию: '); readln(n); seek(f,n); write('Введите новый символ: '); readln(c); write(f,c); close(f); end. |
Задание: (прямой доступ) В файле заменить символы с четной позицией на восклицательные знаки (‘!’). Использовать процедуру seek
Главная » Решебник Абрамяна » Двоичные (типизированные) файлы: группа File (1-90) » File15. Решебник Абрамяна М. Э.
File15. Дан файл вещественных чисел. Найти сумму его элементов с четными номерами.
Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
program File15; var S:String; F_in: File of Real; Sum,temp:real; i:integer; begin Write(‘File: ‘); Readln(S); Assign(F_in,S); Reset(F_in); i:=1; Sum:=0; while (not eof(F_in)) do begin Read(F_in,temp); if (i mod 2 = 0) then Sum:=Sum+temp; inc(i); end; Writeln(Sum); Close(F_in); end. |
Оцените решение
Загрузка…
Л. Р. |
Студент |
Иванов И. И. |
|
Группа |
ХХ-999 |
||
«Типизированные файлы и |
|||
Дата |
дд.мм.гг |
||
массивы» |
|||
Допуск |
|||
Выполнение |
|||
Отчет |
|||
Условие задачи |
|||
Ввести файл F , вывести его. |
Сформировать квадратную матрицу A1N1×N1 |
максимально возможного размера из всех элементов левее максимума и матрицу A22×3 из положительных элементов правее максимума (если
формирование невозможно, то сообщить об этом). Для вывода матриц использовать подпрограммы.
Тестовые примеры
1)
Входные данные:
введенный файл F:
1 |
2 |
3 |
4 |
5 6 |
100 |
2 |
3 |
4 |
5 |
-3 -2 |
4 |
3 |
2 |
||||||||||
Выходные данные: |
|||||||||||||||||||||||
Матрица |
после формирования: |
||||||||||||||||||||||
A1 |
|||||||||||||||||||||||
1 |
2 |
||||||||||||||||||||||
3 |
4 |
||||||||||||||||||||||
Матрица |
A2 |
после формирования: |
|||||||||||||||||||||
2 |
3 |
4 |
|||||||||||||||||||||
5 |
4 |
3 |
1
Блок-схема
Начало
Assign(F, ‘F.dat’)
Rewrite(F) |
Ввод buf (1-я |
компонента файла) |
buf ≠ 999 |
F←buf |
Ввод buf |
reset(F) |
Not EOF(F) |
buf←F |
Вывод buf |
1 |
VivodMx(const A:T2m; const N,M: byte; const name:Tname)
‘Вывод матрицы’, |
|
1 |
name |
reset(F) |
i := 1 , N |
j := 1 , M |
|
max←F |
|
Вывод A[i, j] |
|
kmax:=0 |
|
Выход |
|
not EOF(F) |
|
buf←F |
|
buf>max |
|
max:=buf |
|
kmax:=filePos(F)-1 |
|
1 |
|
стр. 3 |
|
2 |
1 |
1 |
|||
стр. 2 |
||||
kmax=0 |
nPol<2*3 |
|||
reset(F) |
seek(F,kmax+1) |
|||
‘Левее |
‘справа от |
|||
максимума нет |
i:=1 |
|||
N1:=trunc(sqrt(kmax)) |
максимума нет |
|||
элементов, |
j:=1 |
|||
2*3=6 положит. |
||||
формирование |
||||
элементов, а |
||||
матрицы A1 |
||||
j := 1 , N1 |
потому |
|||
невозможно’ |
||||
формирование |
||||
i := 1, N1 |
матрицы |
|||
A2(2х3) |
buf←F |
|||
невозможно’ |
||||
buf←F |
buf>0 |
|||
A1[i, j] := buf |
buf←F |
|||
A2[i,j]:=buf |
||||
VivodMx(A1,N1,N1,’A1′) |
j := j + 1 |
|||
seek(F,kmax+1) |
j>3 |
|||
nPol:=0 |
i := i + 1 |
|||
j := 1 |
||||
Not EOF(F) |
||||
i>2 |
||||
buf←F |
||||
buf>max |
VivodMx(A2,2,3,’A2′) |
|||
nPol:=nPol+1 |
||||
конец |
||||
1 |
Листинг программы на Pascal
program MaxMInExch; const L=10;
type T2M = array[1.. L,1..L] of integer; Tname = string[4];
var A1,A2: T2M; i,j,N1,kmax,nPol:byte; buf,max:integer;
F: file of integer;
3
// процедура для вывода матрицы
procedure VivodMx(const A:T2m; const N,M: byte; const name:Tname);
var i,j:byte; begin
writeLn(‘Матрица ‘,name,’ после формирования:’); for i:=1 to N do
begin
for j:=1 to M do write(A[i,j]:4);
writeLn;
end;
end;
// основная программа begin
//инициализация файла
Assign(F,’F.dat’);
rewrite(F);
writeLn(‘введите первую компоненту файла’); readLn(buf);
while buf<>999 do begin
write(F,buf);
writeLn(‘введите следующую компоненту:’); readLn(buf);
end;
//вывод файла
writeLn(‘введенный файл F:’); reset(F);
while not EOF(F) do begin
read(F,buf);
write(buf:4);
end;
writeLn;
// поиск максимума reset(F); read(F,max); kmax:=0;
while not EOF(F) do begin
read(F,buf); if buf>max then
begin max:=buf;
kmax:=filePos(F)-1; end;
end;
4
if kmax=0 then
writeLn(‘Левее максимума нет элементов, формирование матрицы A1 невозможно’)
else begin
reset(F);
N1:=trunc(sqrt(kmax)); for i:=1 to N1 do
for j:=1 to N1 do begin
read(f,buf);
A1[i,j]:=buf;
end;
VivodMx(A1,N1,N1,’A1′);
end;
seek(F,kmax+1);
nPol:=0;
while not EOF(F) do begin
read(F,buf); if buf>0 then inc(nPol);
end;
if nPol<2*3 then begin
writeLn(‘справа от максимума нет 2*3=6 пол. элементов,’); writeLn(‘а потому формирование матрицы A2(2х3) невозможно’); end
else begin
seek(F,kmax+1);
i:=1;
j:=1; repeat
read(F,buf);
if buf>0 then // если элемент >0, то его в матрицу begin
A2[i,j]:=buf;
inc(j);
if j>3 then begin
inc(i);
j:=1;
end;
end; until i>2;
VivodMx(A2,2,3,’A2′);
end;
close(F);
end.
5
Список задач для лабораторной работы «Типизированные файлы и массивы»
1. Ввести целую квадратную матрицу AN×N , вывести ее. Из положительных элементов матрицы сформировать файл F , который вывести. Далее из файла F сформировать файл G , в который сначала записать сумму всех элементов файла F , затем максимальное значение файла F , затем все его компоненты в обратном порядке. Вывод файлов реализовать процедурой.
2.Создать файл F вещественных чисел. Получить вектор B , записывая в него каждую третью компоненту файла, читая файл с начала, и вектор A , читая файл с конца. Файл и полученные векторы распечатать. Вывод векторов реализовать процедурой.
3.Ввести с клавиатуры квадратную матрицу AN×N , вывести её. Создать
файлы F и G следующим образом: в файл G сначала записать элементы главной диагонали, затем побочной, в файл G по строкам вписать элементы матрицы, исключая диагональные. В конец файлов приписать удвоенную сумму всех элементов матрицы. Вывод файлов реализовать процедурой.
4. Ввести с клавиатуры квадратную матрицу AN×N , вывести её.
Определить в матрице максимальные элементы каждой строки и записать их значения в файл F . Определить минимальную компоненту в файле F , которую утроить. Файл вывести до и после преобразования (вывод реализовать процедурно).
5. Из компонент файла F , введенного с клавиатуры, создать квадратную матрицу AN×N максимально возможного размера. Определить в матрице сумму элементов каждого столбца и записать вычисленные суммы в конец файла. Выдать файл F до преобразования и после, а также матрицу в виде таблицы. Вывод файла реализовать процедурно.
6
6. Сформировать файл F целого типа. Найти S – сумму первых трех положительных компонент файла. Ввести x , если S > x , то получить из файла одномерный массив AN , записывая в него каждую вторую компоненту файла, иначе каждую компоненту файла увеличить на величину S . Массив вывести. Файл вывести при помощи процедуры.
7. |
Сформировать матрицу AN×M , вывести её. Получить из матрицы файлы |
|
F1, |
F 2 и F3, записывая в F1 строку, а в F 2 столбец, |
содержащие |
максимальный элемент матрицы. В F3 записать строку, |
и столбец в |
|
обратном порядке. Файлы вывести используя процедуру. |
||
8. |
Сформировать файл F целого типа. Из файла получить матрицу AN×M . |
Начиная с 1-ой и по ( N −1)-ую строки формировать, читая компоненты файла с начала, N -ую строку заполнить компонентами, читая файл с конца. Матрицу вывести, далее удвоить в ней отрицательные элементы и снова вывести. Если матрицу сформировать нельзя, то сделать сообщение. Значения N и M вводятся с клавиатуры. Для вывода матрицы написать процедуру.
9. Создать файл F вещественных чисел. Сформировать из файла матрицу AN×N , заполняя ее строками. Если для формирования матрицы не хватает компонент файла, то дописать числа 1,2,3,…. Далее в матрице увеличить в 10
раз её угловые элементы. Матрицу вывести до и после преобразования, воспользовавшись подпрограммой.
10. Создать числовой файл F . Найти сумму всех компонент и произведение отрицательных компонент файла. Получить из него два вектора: A и B . В вектор A последовательно записать положительные компоненты файла и в конец – полученную сумму, в вектор B записать сначала вычисленное произведение, а далее – отрицательные компоненты файла. Вектора A и B распечатать, используя подпрограмму.
7
11.В заданной матрице AN×M (матрицу вывести) строки, не содержащие ни одного нуля, переписать последовательно в файл F1, строки содержащие нули переписать в файл F 2 . Если файл не сформирован, сделать текстовое сообщение. При выводе файлов использовать подпрограмму.
12. Из матрицы AN×N (матрицу вывести), получить файл F , записывая в него минимальные элементы каждого столбца, в конец файла записать четные элементы последней строки. В файле вычислить сумму каждой второй компоненты и записать ее на место 1-ой компоненты. Файл вывести до и после преобразования, используя подпрограмму.
13. Элементы файла F поместить на главную и побочную диагональ матрицы AN×N . Отрицательные элементы полученного массива дописать в файл F . Файл (исходный и преобразованный) и матрицу вывести на экран. Для вывода файла воспользоваться подпрограммой.
14. Создать числовой файл F , вывести его. Из положительных компонент файла F получить квадратную матрицу AN×N максимального возможного размера, которую вывести. В конец файла записать сумму элементов главной
ипобочной диагонали. Для вывода файла использовать подпрограмму.
15.Сформировать матрицу AN×N , которую вывести. Строки с
отрицательным элементом на главной диагонали последовательно записать в файл F . В конец файла F дописать сумму первой и последней компонент, а затем первый и последний элемент матрицы A . Файл F вывести до и после преобразования при помощи процедуры.
16. Сформировать файл F целого типа, вывести его. Получить матрицу AN×M . Матрицу заполнять по столбцам, начиная с 1-го и по ( M −1)-ый столбец компонентами файла, читая их с конца. Последний столбец заполнять компонентами, читая файл с начала. Если матрицу сформировать нельзя, выдать сообщение об этом и в файл дописать недостающие элементы (единицы) и снова вывести. Для вывода файла воспользоваться подпрограммой.
8
17. Сформировать файл F целых чисел, вывести его. Найти сумму последних k компонент, где k – общее количество чётных компонент файла. Записать значение суммы в качестве первой компоненты файла. Файл снова вывести. Сформировать из F матрицу A3×4 , записав первые две строки, читая файл с начала, и последнюю строку, читая файл с конца. Если матрицу создать невозможно, сделать сообщение. Для вывода файла использовать подпрограмму.
18.Сформировать векторы A1N1 и A2N 2 целого типа, вывести их. Записать
вфайл F элементы вектора, имеющего меньшее количество нулей, затем другого вектора, далее записать максимальный и минимальный элементы из A1. Файл вывести. Для вывода и ввода векторов воспользоваться подпрограммами.
19.Ввести целую квадратную матрицу AN×N . Из положительных ее
элементов сформировать файл F (формирование файла вести, рассматривая матрицу по столбцам). После записи столбца матрицы дописывать в файл количество положительных элементов в столбце и среднее арифметическое их значение. Файл вывести. Далее отрицательные компоненты файла заменить их модулем и файл снова вывести. Для вывода файла воспользоваться процедурой.
20. Сформировать матрицу AN×N вещественного типа. Найти суммы элементов главной и побочной диагоналей. Записать в файл F сначала элементы диагонали, имеющей большее значение суммы, а затем элементы последней строки матрицы. В файле каждую вторую компоненту, начиная с середины файла, уменьшить вдвое. Файл F распечатать до и после изменения используя процедуру вывода.
9
21. Дана матрица AN×N . Строки матрицы, которые начинаются с положительного элемента, последовательно переписать в файл F . В конец файла дописать сумму максимальной и минимальной компоненты файла, а также первый и последний элементы матрицы. Файл до и после изменения вывести, используя процедуру.
22. Ввести две матрицы |
A1N×M 1 и A2N×M 2 , вывести их. |
Далее переписать |
построчно эти матрицы |
в файл F , чередуя строки |
матриц (сначала |
переписываем первую строку A1, потом первую строку |
A2 , |
потом вторую |
строку A1, вторую строку |
A2 и т.д.). В файле найти номер |
максимальной |
компоненты. Для ввода и вывода матриц использовать подпрограммы.
23.Ввести числовой файл F , вывести его. Определить произведение первых k ненулевых компонент файла и сумму последних k компонент. Сформировать из файла, читая его с конца, вектор B1, в конец вектора приписать найденные сумму и произведение. Далее сформировать вектор B2 , в который поместить каждую вторую компоненту файла F . Вектора распечатать при помощи подпрограммы. Если формирование вектора невозможно, то сделать об этом сообщение.
24.Ввести числовой файл F , вывести его. Переписать каждый второй положительный компонент файла в вектор B1. Четные компоненты файла поместить в вектор B2 . В конец каждого из векторов дописать числа 1,2,3,…, k , где k –количество отрицательных компонент файла. Векторы
вывести, используя процедуру.
25. Ввести две равноразмерных матрицы A1N×M и A2N×N , вывести их (для ввода и вывода воспользоваться подпрограммами). Сформировать из матриц файл F , переписывая построчно из матриц элементы в файл, чередуя матрицы при формировании каждого нового элемента файла. Далее определить упорядочен ли по возрастанию файл.
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #