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.

Блок схема: