. Работа с файлами С текстового редактора создать файл text1.txt и заполнить словами из латинских букв (не менее 30 слов).
Файл number1.txt программно заполнить случайными целыми числами, принадлежащими диапазону от
-100 до 100. Количество чисел в файле задается с клавиатуры. Количество чисел в каждой строке является
произвольным числом из диапазона от 0 до 10 и задается с функции rand(). Вывести числа на
консоль, сохранив разбиение на строки, соответствующее файлу number1.txt.
При реализации программы необходимо для заполнения файла number1.txt случайными целыми числа-
ми использовать заголовочный файл, содержащий функцию для заполнения файла. При работе с файлом,
заполненным словами, можно использовать функции работы со строками. При выводе результата в файл
number3.txt сохранить разбиение на строки.
Записать в файл total.txt сначала все элементы файла number2.txt, выровненные по правому краю, а за-
тем все элементы файла text2.txt, выровненные по центру. Переименовать файл total.txt (новое имя файла
вводится с клавиатуры).
Вывести на консоль сначала все элементы файла number2.txt, выровненные по правому краю, а затем
все элементы файла text2.txt, выровненные по центру.
Варианты
8. Найти разность пар соседних элементов файла number1.txt. Результат вывести в файл number3.txt и
на консоль. В конец файла number2.txt добавить слова "Result = " и количество элементов, равных
нулю, вывести полученный результат на консоль.
Вывести все слова файла text1.txt, предварительно преобразовав каждое из них по следующему
правилу: оставить в слове только первые вхождения каждой буквы. Результат записать в файл
text2.txt.
//Pascal
const m = 1000
var
arr: array[1..m] of integer;
n,i, j, k: integer;
begin
readln(n);
write ('Исходный массив: ');
for i := 1 to n do begin
readln(arr[i]);
end;
//сортировка методом пузырька
for i := 1 to n-1 do
for j := 1 to n-i do
if arr[j] > arr[j+1] then begin
k := arr[j];
arr[j] := arr[j+1];
arr[j+1] := k
end;
write ('Отсортированный массив: ');
for i := 1 to n do
write (arr[i]:4);
end.
Алгоритм сортировки на классическом языке программирования С
# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;}
void bubblesort(int A[], int n)
{
int i, j;
for(i = n-1 ; i > 0 ; i--)
{ for(j = 0 ; j < i ; j++)
{
if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);
}
}
}
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Rewrite(f,'books.dat');
Writeln('Ввод данных по книгам');
var s1,s2:string;
var i1,i2:integer;
var book:tBook;
repeat
s1:=ReadlnString('Автор или * для окончания ввода:');
if s1<>'*' then begin
s2:=ReadlnString('Название книги:');
i1:=ReadlnInteger('Количество страниц:');
i2:=ReadlnInteger('Год издания:');
(book.author,book.naim,book.pages,book.godizd):=(s1,s2,i1,i2);
Write(f,book)
end
until s1='*';
Writeln('*** Ввод завершен ***');
f.Close
end.
Тестовое решение
Ввод данных по книгам
Автор или * для окончания ввода: Жюль Верн
Название книги: 80 тысяч километров под водой
Количество страниц: 573
Год издания: 1951
Автор или * для окончания ввода: Сергей Лукьяненко
Название книги: Дозор
Количество страниц: 934
Год издания: 2004
Автор или * для окончания ввода: Жюль Верн
Название книги: Властелин мира
Количество страниц: 104
Год издания: 2011
Автор или * для окончания ввода: *
*** Ввод завершен ***
2. Программа для выборки
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Reset(f,'books.dat');
var s:=ReadlnString('Автор книги:');
var y:=Readinteger('Год издания, не ранее:');
var k:=0;
var book:tBook;
while not f.Eof do begin
Read(f,book);
if (book.author=s) and (book.godizd>=y) then begin
Writeln(book);
Inc(k)
end;
end;
if k=0 then Writeln('Таких книг не найдено');
f.Close
end.
Тестовое решение
Автор книги: Жюль Верн
Год издания, не ранее: 2005
(Жюль Верн,Властелин мира,104,2011)