я очень стесняюсь,и прошу вашей помощи,я и так плохо разбиралась в информатике,а сейчас еще и тетрадь со всеми записями потеряла.ничего не получаеться бьюсь головой об стол (скоро дыра будет),помогите пожалуйста если вам не очень сложно.
2 задачи, обе на двумерный массив
Дана матрица размером N на M,вывести количество строк матрицы,в которых число положительных элементов больше числа отрицательных элементов.
Дана квадратная матрицапорядка N вывести сторону матрицы,в которой элемент стоящий на главной диагонале максимален.
а как перенести пробу решения задачи в паскале от туда сюда(((((((((
1) сохраняешь файлик в формате с расширением pas (например, 1.pas)
2) щелкаешь по нему правой кнопкой -> открыть с помощью и выбираешь блокнот (или ворд)
3) копируешь, как обычный текст.
задача 2
Program stroka;
VAR
A:ARRAY [1..10,1..10] of integer;
i,j : integer;
BEGIN
WriteLn ('введите размерность массива ');
ReadLn (n);
FOR i:=1 to n do
FOR j:=1 to n do
ReadLn (A[i,j]);
Begin
max:=a[1,1];
k:=0;
for i:=2 to n do
if a[i,i]>max then
begin
max:=a[i,i];
k:=i;
end;
объясните пожалуйста.
1. изначально предполагаем, что первый элемент и есть максимум. если это предположение неверное, то...
2. как только нам попадется элемент, больше него, запомним новый максимум и его индекс:
max:=a[i,i];
k:=i;
это описка строка матрицы
а... ну тогда никаких проблем.
номер строки мы запомнили (k).
теперь просто надо вывести k-тую строку, то есть элементы
a[k,1], a[k,2]...a[k,n]
и как же это сделать,вы зря со мной разговариваете как с человеком который хоть что-то понимает,все по нулям.но я очень стараюсь.
я поняла твою мысль Юлия но как это воплотить в программе.
spektr, ну смотри:
номер строки остается неизменным (k), а номер столбца изменяется:1,2,3,4...n. значит, надо сделать, чтобы каждый раз вместо номер столбца подставлялось число, на 1 больше предыдущего, правильно?
начинается последовательность с 1, заканчивается n (n-это некоторая константа, которую мы знаем).
Очень удобно воспользоваться циклом for:
for i:=1 to n do
{вывод элемента a[k,i]}
если чесно то нет,а вы не смотрели первую задачу меня там ломает на том же моменте,т.е после заполнения матрицы.
writeln(a[k,i]);
Program stroka;
VAR
A:ARRAY [1..10,1..10] of integer;
i,j,n,max,k : integer;
BEGIN
WriteLn ('введите размерность массива ');
ReadLn (n);
FOR i:=1 to n do
FOR j:=1 to n do
ReadLn (A[i,j]);
Begin
max:=a[1,1];
k:=0;
For i:=2 to n do
If a[i,i] > max
Then
begin
max:=a[i,i];
k:=1;
end;
For i:=1 to n do
WriteLn (a[k,i]);
END;
readLn
end.
max:=a[i,i];
k:=i; { <--- Вместо единицы }
Program stroka;
VAR
A:ARRAY [1..10,1..10] of integer;
i,j,n,max,k : integer;
BEGIN
WriteLn ('ўўҐ¤ЁвҐ а §¬Ґа®бвм ¬ ббЁў ');
ReadLn (n);
FOR i:=1 to n do
FOR j:=1 to n do
WriteLn ('§ Ї®«ЁвҐ ¬ ббЁў');
ReadLn (A[i,j]);
Begin
max:=a[1,1];
k:=1;
For i:=2 to n do
If a[i,i] > max
Then
begin
max:=a[i,i];
k:=i;
else
end
For i:=1 to n do
WriteLn (a[k,i]);
END;
Readln
end.
Что не получается? Ты сначала программу как положено напиши, чтобы каждый End был под ЕГО же Begin-ом, и лишний Else убери из программы, тогда может и получится..
Program stroka;кампилятор пропускает,но задача не считает
VAR
A:ARRAY [1..10,1..10] of integer;
i,j,n,max,k : integer;
BEGIN
WriteLn ('ўўҐ¤ЁвҐ а §¬Ґа®бвм ¬ ббЁў ');
ReadLn (n);
FOR i:=1 to n do
FOR j:=1 to n do
WriteLn ('§ Ї®«ЁвҐ ¬ ббЁў');
ReadLn (A[i,j]);
Begin
max:=a[1,1];
k:=1;
For i:=2 to n do
If a[i,i] > max
Then
begin
max:=a[i,i];
k:=i;
end;
For i:=1 to n do
WriteLn (a[k,i]);
end;
Readln
end.
а ничего, что массив не заполняется вообще?
строка
ReadLn (A[i,j]);
а понятно,бегин энд еще один нужен!!!
АААААААААААААААААААА.ребят спасибо большое,Работает,какие вы умнички,простите что я вас своим тупизмом заколебала.
с меня шоколадка
а как вам репу повысить подскажите(еще один тупизьмь)
пока что сама никак не можешь (у тебя сообщений мало).