Форум «Всё о Паскале» _ Задачи _ помогите дорешать 2 задачки
Автор: Vinsent90 27.05.2008 16:13
Возникли проблемы при решении 2х задач.
1) Задан двухмерный массив, найти наибольший и наименьший элементы и поменять их местами. MAXMIN.PAS ( 1.11 килобайт )
Кол-во скачиваний: 511 . Не могу поменять местами элементы массива
2) Дана символьная строка. Определить, содержит ли строка числа, если да, то вывести на экран только чётные. STROKA.PAS ( 431 байт )
Кол-во скачиваний: 510 .
Помогите плиз
Автор: sintanial 27.05.2008 17:48
НУ для первого я думаю так, запоминаешь для минимального -его индексы в переменные ну например k,l а максимульный запоминаешь допустим в s,t . Дальше тупо берешь a[k,l]:=min; a[s,t]:=max;. Вроде дожно получиться =)
Автор: Vinsent90 27.05.2008 20:03
Цитата(sintanial @ 27.05.2008 14:48)
НУ для первого я думаю так, запоминаешь для минимального -его индексы в переменные ну например k,l а максимульный запоминаешь допустим в s,t . Дальше тупо берешь a[k,l]:=min; a[s,t]:=max
А как запомнить индексы ИМЕННО максимального или минимального элементов?? У меня запоминаются только индексы последнего значения матрицы. Может кто на пальцах объяснит...или прогу допишет
Автор: мисс_граффити 27.05.2008 21:00
много раз выкладывалось ну идея такая... чтобы найти минимум ты в цикле делаешь, например:
if a[i,j]<min then min:=a[i,j];
а надо делать
if a[i,j]<a[mini,minj] then begin mini:=i; minj:=j; end;
то есть запоминаешь не значение элемента, а его индексы. аналогично с максимальным.
Автор: Vinsent90 28.05.2008 0:33
Не находятся коофициенты наименьшего числа. Кто ошибку найдёт?
Код
Program MaxMin; uses crt; var i,j,m,n,k,l,s,t,y,x : integer; max, min : integer; maxi,maxj,mini,minj : integer; A, B, C: array[1..10,1..10] of integer; Begin clrscr; Write('koli4estvo strok, ne bolee 10 - '); ReadLn(N); Write('koli4estvo stolbcov, ne bolee 10 - '); ReadLn(M); if ((1>n) or (n>10) or (1>m) or (m>10)) then begin writeln; writeln('OSHIBKA'); readln; halt; end; For i := 1 to N do For j := 1 to M do begin Write('A[',i, ',',j,']= '); ReadLn(A[i, j]); end; WriteLn; WriteLn(' matrica A'); WriteLn; For i := 1 to N do begin For j := 1 to M do Write(A[i, j] : 5 ); WriteLn; WriteLn; end;
max:=A[1,1]; for i:=1 to n do begin for j:=1 to m do if A[i,j]>max then max:=A[i,j] end; writeln ('naibolshii element = ', max);
min:=A[1,1]; for i:=1 to n do begin for j:=1 to m do if A[i,j]<min then min:=A[i,j]; end;writeln ('naimenshii element = ', min); writeln;
for i:=1 to n do begin for j:=1 to m do if A[i,j]>A[maxi, maxj] then begin maxi:=i; maxj:=j; end; end;
for i:=1 to n do begin for j:=1 to m do if A[i,j]<A[mini, minj] then begin mini:=i; minj:=j; end; end;
Как определить, содержит ли символьная строка цифры ???
i := 1; while (i <= length(s)) and not (s[i] in ['0'..'9']) do inc(i); if i <= length(s) then writeln('includes numbers') else writeln('not includes numbers');
Автор: Vinsent90 29.05.2008 14:35
Задачи решил, всем спасибо.
Если кому нужны решения , выкладываю 1.PAS ( 1.68 килобайт )
Кол-во скачиваний: 467