Помогите! с простинькими програмками!

  • Автор темы Quadro
  • Дата начала
Q

Quadro

#1
Не успел разобраться ,во всем ,а уже экзамн завтра а допуск не могу получить(((

Массивы:

4. Найти номер первого отрицательного элемента, делящегося на 5 с остатком 2.
5. Дан двумерный массив размером 4на6, заполненный целыми числами, введенными с клавиатуры. Вставить после столбцов, содержащих максимальный элемент массива, столбец из нулей.
6. Дана последовательность слов. Напечатать все слова, предварительно заменив в ка-ждом слове первую встреченную букву «а» на «о».

пополню баланс ,веб мани или моба)
 
B

BurcevD

#3
Задача № 1
Код:
//Размерность массива
Const ArrayLength=10;
//Описание переменных
Var a:array[0..ArrayLength-1] of integer;
i:Integer;
f:boolean;
Begin
//Вводим исходный массив
Writeln('Source array:');
For i:=0 to ArrayLength-1 do
begin
Write('INter element #',i,':');
Readln(a[i]);
end;
//Флаг, что найден пока равен ЛОЖЬ
f:=false;
//Просматриваем весь массив
For i:=0 to ArrayLength-1 do
//Если остаток деления на 5 равен -2, т.е. число отрицательное, то
if (a[i] mod 5=-2) then
begin
//Влаг устанавливаем в ИСТИНА
f:=true;
//Выводим номер элемента
Writeln('Element #',i);
//Завершаем цикл
break;
end;
//Если не найден ни один подходящий элемент, то выводим сообщение об этом
If (not f) then
Writeln('Element not found.');
end.
Задача № 2
Код:
//Описываем переменные, масиив взят 4 на 12, в том случае, когда в каждом столбце будет максимальный элемент
Var a:array[0..3,0..11] of integer;
x,y,i,max:integer;
Cols:Byte;
F:Boolean;
Begin
//Вводим исходный массив
Writeln('Source Array:');
For y:=0 to 3 do
For x:=0 to 5 do
begin
Write('Inter element #',x,'-',y,':');
Readln(a[y,x]);
end;
//Находим максимальный элемент, в начале он равен первому элементу массива
max:=a[0,0];
For y:=0 to 3 do
For x:=0 to 5 do
//Если есть еще более максимальный, то запоминаем его
if (max<a[y,x]) then max:=a[y,x];
//Количество выводимых колонок вначале равен 6 (от 0 до 5)
Cols:=5;
//Проходим все столбцы
For x:=0 to 9 do
begin
//Флаг устанавливаем в ЛОЖЬ
f:=false;
//Если по столбцу есть максимальный элемент, то флаг устанавливается в ИСТИНА
for y:=0 to 3 do if (a[y,x]=max) then f:=true;
//Если есть максимальный элемент, то
if (f) then
begin
//Проходим кажую строчку в этом столбце
for y:=0 to 3 do
begin
//Смещаем все элементы, находящиеся справа от искомого столбца на один вправо
for i:=11 downto x+2 do a[y,i]:=a[y,i-1];
//А за текущим столбцом ставим 0
a[y,x+1]:=0;
end;
//Увеличиваем количество выводимых столбцов
Inc(cols);
end;
end;
//Выводим весь массив на экран
For y:=0 to 3 do
begin
For x:=0 to cols do Write(a[y,x]:5);
Writeln;
end;
End.
Задача №3

Код:
//Описываем переменные
Var s:String;
WordBegin:Boolean;
i:Byte;
Begin
//Вводим строку
Write('Inter string:');
Readln(s);
//Прибавляем вначале пробел
s:=' '+s;
//Флаг, что слово началось устанавливаем в ЛОЖЬ
WordBegin:=false;
//Проходим всю строку
for i:=1 to Length(s) do
begin
//Если предыдущий символ пробел, а текущий не пробел, то флаг, что слово началось устанавливается в ИСТИНА
if (s[i-1]=' ')and(s[i]<>' ') then WordBegin:=true;
//Если слово только началось и встретилась буква (я взял английскую а, но можно заменить на любую, в том числе на русскую)
If (WordBegin)and(s[i]='a') then
Begin
//Заменяем ее на другую буковку
s[i]:='o';
//Флаг, что слово началось устанавливаем в ЛОЖЬ, (чтоб потом нельзя было менять такиеже символы)
WordBegin:=false;
End;
end;
//Выводим получившуюся строчку на экран
Writeln('String:',s);
end.