10 задач с решениями программированием на Паскале

10 задач с решениями программированием на Паскале

Программа: program S2_Z4; type m=array[1..100] of integer; var A:m ; procedure vvod ( m:integer;var x:m ); var i : integer; begin writeln ('введите элементы массива'); for i :=1 to m do read(x[ i ]); end; procedure moped( m:integer;var x:m ); var i,k,n:integer ; begin k:=0;n:=0; for i :=1 to m do if x[ i ]=0 then k:=k+1 else begin if x[i-1]=0 then if k>n then n:=k; k:=0;end; if k>n then writeln ('самая большая последовательность нулей состовляет ', k ) else writeln ('самая большая последовательность нулей состовляет ', n ); end; begin vvod (20,A); moped(20,A); end. Задача 5. Написать программу, считывающую заданное количество одномерных массивов, определяющую минимальный элемент в каждом из них и подсчитывающую количество нулей среди элементов, расположенных за минимальным.

Программа: program S2_Z5; type m=array[1..100] of integer; mas =array[1..10] of m; var A:mas ; procedure vvod ( kn:integer;x:mas ); var y:m;i,t,k,min,k0:integer; begin for k:=1 to kn do begin k 0:=0; min :=1000; writeln ('введите кол-во эл-ов в ', k ,'-ом массиве'); read ( t ); writeln ('теперь введите элементы этого массива'); for i :=1 to t do read(y[ i ]); for i :=1 to t do if y[ i ] i ]; writeln ('минимальный элемент этого массива равен ', min ); for i :=1 to t do if y[ i ]=min then for i := i to t do if y[ i ]=0 then k0:=k0+1; writeln ('количество нулей массива после минимального значения равно ', k 0); write; write; end; end; begin vvod (5,A); end. Задача 6. Условие: Написать программу подсчитывающую в каждой из заданных строк количество слов `мама`. Программа: program S2_Z6; type str =string[100]; ms=array[1..100] of str ; var A:ms ; procedure vvod ( m:integer;var x:ms ); var i:integer ; begin for i :=1 to m do begin writeln (' введите ', i ,'-ю строку '); readln (A[ i ]);end; end; procedure moped( m:integer;var x:ms ); var i,k:integer ; st:str ; begin for i :=1 to m do begin k:=0; st :=A[ i ]; while pos(' мама',st )<>0 do begin k:=k+1;delete( st,pos (' мама',st ),4); end; writeln ('кол-во слов мама в ', i ,'-ой строке ', k ); end ; end ; begin vvod (5,A); moped(5,A); end. Задача 7. Условие: Дан массив из 7 строк, в каждой из которых не более 50 элементов.

Удалить из каждой строки все пробелы и записать количество удалённых пробелов в конец этой строки.

Программа : program S2_Z7; type s=string[50]; ms=array[1..100] of s; var A:ms ; procedure vvod ( m:integer;var x:ms ); var i:integer ; begin for i :=1 to m do begin writeln (' введите ', i ,'-ю строку '); readln (A[ i ]);end; end; procedure prob ( m:integer;var x:ms ); var i,k:integer;st,p:s ; begin for i :=1 to m do begin st :=x[ i ]; k:=0; while pos(' ', st )<>0 do begin delete( st,pos (' ', st ),1);k:=k+1;end; str ( k,p ); insert( p,st,length ( st )+1); writeln ( i,'-ая строка :', 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 ]) 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. Условие: В файле из вещественных чисел переставить элементы таким образом, чтобы сначала были записаны все положительные, затем все отрицательные, а потом все нули.