10 задач с решениями программированием на Паскале
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
°я строка:, st);end;
end;
begin
vvod(7,A);prob(7,A);
end.
Задача 8.
Условие: В текстовом файле отсортировать строки по возрастанию их длин.
Прграмма:
program S2_Z8;
type ft=text; mas=array[1..100] of string;
var f1:ft;k,i,j:integer;s:string;A:mas;
procedure sozd(var f:ft;n:integer);
var i:integer; s:string;
begin assign(f,c:\1.txt);rewrite (f);
for i:=1 to n do
begin writeln(введите ,i,-ю строку);readln(s);
writeln(f,s);
end; close(f);
end;
procedure w(var f:ft);
var s:string;
begin writeln(измененный фаил будет выглядеть так:);
reset(f);
while not eof(f) do begin readln(f,s); writeln(s)
end; close(f);
end;
begin writeln(введите кол-во строк в файле); readln(k);
sozd(f1,k);
reset(f1);
while not eof(f1) do
begin for i:=1 to k do begin readln(f1,s); A[i]:=s;end;end;
for j:=1 to k do
for i:=1 to k do
if length(a[i])<length(a[i-1]) then begin
s:=a[i];a[i]:=a[i-1];a[i-1]:=s;end;
close(f1);
rewrite(f1);
for i:=1 to k do writeln(f1,a[i]);
close(f1);
w(f1);
end.
Задача 9.
Условие: В файле из вещественных чисел переставить элементы таким образом, чтобы сначала были записаны все положительные, затем все отрицательные, а потом все нули.
Программа:
program S2_Z9;
type fi=file of integer; m=array[1..100] of integer;
var f1:fi;n:integer;
procedure vvod(n:integer;var f:fi);
var i,a:integer;
begin
assign (f,c:\f.int);
rewrite(f);
writeln(Введите компоненты файла);
for i:=1 to n do begin
read(a);write(f,a);end;
close (f);
end;
procedure sort(n:integer;var f:fi);
var buf:fi;s,i,j,k:integer; a:m;
begin
reset(f);
assign (buf,c:\buf.int);
rewrite(buf);
while not eof(f) do begin
for i:=1 to n do begin read(f,s); A[i]:=s;end;end;
for j:=1 to n do
for i:=1 to n do
if a[i]>a[i-1] then begin
s:=a[i];a[i]:=a[i-1];a[i-1]:=s;end;
k:=0;
for i:=1 to n do
if a[i]=0 then begin s:=a[i];a[i]:=a[n-k];a[n-k]:=s;k:=k+1;end;
for i:=1 to n do write(buf,a[i]);
close(buf);close(f);
erase(f);
rename(buf,c:\f.int);
end;
procedure w(var f:fi);
var a:integer;
begin
reset(f);
while not eof(f) do begin
read(f,a);write(a:4);end;
end;
begin
writeln(Задайте кол-во компонентов файла);readln(n);
vvod(n,f1);
sort(n,f1);
w(f1);
write;
end.
Блок схема:
Задача 10.
Условие: Записать в конец каждой строки текстового файла количество слов в этой строки.
Программа:
program S2_Z10;
type ft=text; mas=array[1..100] of string;
var f1:ft;k:integer;
procedure sozd(var f:ft;n:integer);
var i:integer; s:string;
begin assign(f,c:\f.txt);rewrite (f);
for i:=1 to n do
begin writeln(введите ,i,-ю строку);readln(s);
writeln(f,s);
end; close(f);
end;
procedure kslov(var f:ft);
var s,pk,p:string;k:integer; buf:ft;
begin
reset(f);
assign(buf,c:\buf.txt);
rewrite(buf);
while not eof(f) do begin k:=0;readln(f,s);
p:=s;
while pos( ,p)>1 do begin k:=k+1; delete(p,1,pos( ,p));end;
str(k,pk);insert(pk,s,length(s)+1); writeln(buf,s);end;
close(f); close(buf);
erase(f);
rename(buf,c:\f.txt);
end;
procedure w(var f:ft);
var s:string;
begin writeln(измененный фаил будет выглядеть так:);
reset(f);
while not eof(f) do begin readln(f,s); writeln(s)
end; close(f);
end;
begin
writeln(введите кол-во строк в файле); readln(k);
sozd(f1,k); kslov(f1);w(f1);
end.
Блок схема: