Добрый день! нужна помощ в составлении укрупненного алгоритмов. Все задания готовы и работают!
ПОМОГИТЕ ИЛИ ОБЪЯСНИТЕ КАК СОСТАВЛЯТЬ ТАКОЙ АЛГОРИТМ.НИЖЕ В ФАЙЛЕ ПРИКРЕПЛЮ ПРИМЕР, КАК ДОЛЖНО ВЫГЛЯДЕТЬ! Мли хотя бы обычный алгоритм помогите составить! или скиньте ссылку на прогу для автоматического создания блок-схем..все куда захожу не устанавливаются
ЗАРАНЕЕ СПАСИБО )
Задание 1. Дана вещественная матрица nxm. Упорядочить ее строки по возрастанию суммы их элементов.
const
nmax=100;
var
i,j,n,m,q: integer;
a: array[1..nmax,1..nmax] of real;
b: array[1..nmax] of real;
sum,tmp: real;
begin
randomize;
write('Введите размер матрицы n и m: ');
readln(n,m);
writeln('Исходная матрица');
for i:=1 to n do
begin
sum:=0;
for j:=1 to m do
begin
a[i,j]:=random(99)+random;
write(a[i,j]:7:2);
sum:=sum+a[i,j];
end;
b[i]:=sum;
write(' Сумма элементов ряда = ',sum:7:2);
writeln;
end;
writeln;
for i:=2 to n do
for j:=n downto i do
if b[j-1]>b[j] then
begin
for q:=1 to m do
begin
tmp:=a[j-1,q];
a[j-1,q]:=a[j,q];
a[j,q]:=tmp;
end;
tmp:=b[j-1];
b[j-1]:=b[j];
b[j]:=tmp;
end;
writeln('Отсортированная по возрастанию сумм строк матрица :');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:7:2);
writeln;
end;
readln;
end.
Задание 2. В вводимой строке заменить самое часто встречаемое слово на обратное.
var
s,s1: string;
i,n: byte;
c: char;
slovo,maxslovo:string;
k,maxk:integer;
function fw(s:string;var w:string):boolean;
const
c=['а'..'я','А'..'Я'];
var
i:integer;
begin
while (not (s[1] in c)) and (length(s)>0) do delete(s,1,1);
if length(s)>0 then
begin
s:=s+' ';
i:=1;
while (s[i] in c) do inc(i);
w:=copy(s,1,i-1);
fw:=true;
end
else
begin
w:='';
fw:=false;
end;
end;
begin
write('Введите строку: ');
readln(s);
s1:=s;
maxk:=0;
maxslovo:='';
while fw(s1,slovo) do
begin
k:=0;
while pos(slovo,s1)>0 do
begin
inc(k);
delete(s1,pos(slovo,s1),length(slovo));
end;
if k>maxk then
begin
maxslovo:=slovo;
maxk:=k;
end;
end;
s:=maxslovo;
n := length(s) div 2;
for i := 1 to n do begin
c := s[i];
s[i] := s[length(s)-i+1];
s[length(s)-i+1] := c;
end;
write('Самое часто встречаемое слово:', ' ');
writeln(maxslovo);
write('Перевернутое слово:',' ');
writeln(s);
end.
Задание 3. Вычеркнуть из слова Х согласные буквы, стоящие на нечетных местах.
var
str: string;
i: integer;
sogl : set of char;
begin
sogl :=['Б'..'Д','б'..'д','Ж','ж','З','з','К'..'Н','к'..'н','П'..'Т',
'п'..'т','Ф'..'Щ','ф'..'щ','Ъ','ъ','Ь','ь'];
write('Введите слово: ');
readln(str);
for i:=length(str) downto 1 do
if (str[i] in sogl)and(i mod 2<>0) then
delete(str,i,1);
write('Полученное слово: ');
writeln(str);
end.
Задание 4. При поступлении на музыкально-педагогический факультет на абитуриентов собираются сведения: фамилия, музыкальный инструмент. Для поступления необходимо сдать экзамен по специальности. Составить списки для данного экзамена, в зависимости от специальности.
const
nmax=100;
type
muz=record
name: string[20];
inst: string[15];
end;
var
a: array[1..nmax] of muz;
i,n,k: integer;
str: string;
begin
write('Сколько абитуриентв поступает в училище?: ');
readln(n);
writeln('Введите данные о абитуриентах');
for i:=1 to n do
begin
with a[i] do
begin
write(i,' Фамилия: ');
readln(name);
write(' Музыкальный нструмент: ');
readln(inst);
end;
end;
write('Введите наименование муз. инструмента: ');
readln(str);
writeln('Список абитуриентов, сдающих экзамен <',str,'>');
for i:=1 to n do
with a[i] do
if a[i].inst=str then
begin
inc(k);
writeln(k,'. ',a[i].name);
end;
end.