Другие языки программирования и технологии

Народ! Помогите решить задачи на языке паскаль. Очень срочно надо! Буду рада решению хотя бы одной из списка=)

1. Определить наименьший элемент каждой четной строки матрицы A (m,n)2.Составить программу, определяющую в каком из данных 4 чисел больше цифр3.Дана строка. Напечатать в алфавитном порядке все слова данной строки, имеющие заданную длину n4. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы К.За мной бонусные баллы и благодарности=)
Кун Иван
Кун Иван
299
Доброго времени суток.

1. Можно так.
Row := 2; {первая четная строка}
while Row <= M do begin
MinN := A[Row, i]; {первый элемент строки}
for i:=2 to N do
if A[Row, i] < MinN then MinN := A[Row, i]; {новый минимальный}
WriteLn('Rowl=', Row, ' Min = ', MinN); {вывод минимального в строке}
Col := Col + 2; {следующая четная строка}
end;

2. Можно делать по-разному. Например, через строки. Просто преобразовать в строку и выбрать ту, у которой длина больше. Или можно так подсчитать число цифр.

function DigitCount(N: Integer): Integer;
var Res : Integer;
begin
Res := 0;
whilr N > 0 do begin
N := N div 10;
Res := Res + 1;
end;
DigitCount := Res;
end;

Затем последовательно обращаетесь к этой функции, передавая в качестве параметра одно и з 4 чисел и находите нужное.

Слова из строки можно выделить так.
S := St + ' '; {делаем копию входной строки и добавляем в конце пробел}
while Pos(' ', S) > 0 do begin
S1 := Copy(S, 1, Pos(' ', S)-1); {копируем слово до пробела в другую переменную}
Delete(S, 1, Pos(' ', S)); {и удаляем его из копии строки}
{выполнение действий со словом}
end;

3. Поскольку строка в паскале не превышает 255 символов и приняв среднюю длину слова 5 символов, можем объявить массив для слов строки

var A : array[1..50] of String;

в который запишем выделяемые слова. Затем отсортируем их (допустим, слов оказалось к)

for i := 1 to k do
for j := 1 to k - i do
if (A[j] > A[j+1]) then begin
S := A[j]; {сначала сохраним в промежуточной переменной}
A[j] := A[j + 1]; {переставляем элементы}
A[j + 1] := S; {восстанавливаем значение}
end;

И, наконец, выведем нужные.

for i:=1 to k do
if Length(A[ i ]) = N then WriteLn(A[ i ]);

4. Подсчитать количество слов на "к" можно так
{после выделения слова}
N := 0;
if S1[1] = 'k' then N := N + 1;

Удачи!
ДБ
Денис Бондаренко
59 613
Лучший ответ
Доброго времени суток.

1. Можно так.
Row := 2; {первая четная строка}
while Row <= M do begin
MinN := A[Row, i]; {первый элемент строки}
for i:=2 to N do
if A[Row, i] < MinN then MinN := A[Row, i]; {новый минимальный}
WriteLn('Rowl=', Row, ' Min = ', MinN); {вывод минимального в строке}
Col := Col + 2; {следующая четная строка}
end;

2. Можно делать по-разному. Например, через строки. Просто преобразовать в строку и выбрать ту, у которой длина больше. Или можно так подсчитать число цифр.

function DigitCount(N: Integer): Integer;
var Res : Integer;
begin
Res := 0;
whilr N > 0 do begin
N := N div 10;
Res := Res + 1;
end;
DigitCount := Res;
end;

Затем последовательно обращаетесь к этой функции, передавая в качестве параметра одно и з 4 чисел и находите нужное.

Слова из строки можно выделить так.
S := St + ' '; {делаем копию входной строки и добавляем в конце пробел}
while Pos(' ', S) > 0 do begin
S1 := Copy(S, 1, Pos(' ', S)-1); {копируем слово до пробела в другую переменную}
Delete(S, 1, Pos(' ', S)); {и удаляем его из копии строки}
{выполнение действий со словом}
end;

3. Поскольку строка в паскале не превышает 255 символов и приняв среднюю длину слова 5 символов, можем объявить массив для слов строки

var A : array[1..50] of String;

в который запишем выделяемые слова. Затем отсортируем их (допустим, слов оказалось к)

for i := 1 to k do
for j := 1 to k - i do
if (A[j] > A[j+1]) then begin
S := A[j]; {сначала сохраним в промежуточной переменной}
A[j] := A[j + 1]; {переставляем элементы}
A[j + 1] := S; {восстанавливаем значение}
end;

И, наконец, выведем нужные.

for i:=1 to k do
if Length(A[ i ]) = N then WriteLn(A[ i ]);

4. Подсчитать количество слов на "к" можно так
{после выделения слова}
N := 0;
if S1[1] = 'k' then N := N + 1;

Удачи!