Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2008, 01:22   #1
anco
Пользователь
 
Аватар для anco
 
Регистрация: 19.06.2008
Сообщений: 15
Стрелка Двумерный массив в сортировке

помогите пожалуйста решить задачку.
Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Найти и вывести номера только тех строк, все элементы которых четные.
anco вне форума Ответить с цитированием
Старый 19.06.2008, 01:30   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Ждёмс Ваших наработак...
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 19.06.2008, 01:34   #3
anco
Пользователь
 
Аватар для anco
 
Регистрация: 19.06.2008
Сообщений: 15
По умолчанию

Код:
Uses Crt;
Var a:array[1..10,1..10] of integer;
    n,m,i,j:integer;
    s:array [1..10] of integer;
Procedure InputOutput;
 Begin
  ClrScr;
  writeln('Количесвто строк-');
  readln(n);
  writeln('Уоличество столбцов-');
  readln(m);
   for i:=1 to n do
    for j:=1 to m do
     begin
      write('a[',i,',',j,']=');
      readln(a[i,j]);
     end;
     writeln;
    ClrScr;
    writeln('матрица ');
     for i:=1 to n do
      begin
       for j:=1 to m do write(a[i,j]:5);
       writeln;
      end;
      writeln;
 end;
дальше я не знаю=(

я хоть правильно начала??

помогите пожалуйста , буду очень благодарна

Последний раз редактировалось Alex21; 19.06.2008 в 07:48.
anco вне форума Ответить с цитированием
Старый 19.06.2008, 02:24   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Ну, вообщето какойто бред..

Давайте с начала:
===Раздел пременых==
1. Нужно обявить две переменые типа Integer. Назовём их x и y. Они у нас будут индексами массива.
2. Нужно обьявить двумерный массив. Назовём его Mass. Для определения его размерности потребуется ещё две переменые типа Integer. Назовём их n и m.
3. Также обьявим переменую Flag типа Boolean. Этот флаг мы будем выставлять в True, и будет хранить в себе результат обработки строки. А именно о чётности элементов.

Итого раздел переменных выглядит так:

Код:
Var x, y, n , m : Integer;
      Mass : Array [1..n, 1..m] of Integer;
      Flag : Boolean;
==Ввод массива==
1. Для начала запросим размерность.
2. Потом классика. Двойной цикл For.

Код:
Write('n = '); Readln(n);
Write('m = '); Readln(m);
For y := 1 To n Do
  For x := 1 To m Do
    Begin
      Write('Mass[', x, ',', y,']=');
      Readln(Mass[x,y]);
    End;
==Обработка==
1. Перебор опятьже в двойном цикле.
2. Переменая Flag выставляется(на всякий случай) в True.
3. Как только нарушается условие чётности то переменую меняем на False.
4. При переходе к обработке второй строки проверяем переменую и если надо печатаем номер строки.

Код:
Flag := True;
For y := 1 To n Do
  Begin
    For x := 1 To m Do If Mass[x,y] Mod 2 = 1 Then Flag := False;
    If Flag = True Then Writeln(y);
  End;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 19.06.2008, 08:09   #5
anco
Пользователь
 
Аватар для anco
 
Регистрация: 19.06.2008
Сообщений: 15
По умолчанию

Спасибо большое!!вопрос: почему бред??у меня вроде бы работает...где ошибка??

A kak vyvesti nomera strok?

Pomogite pozhalujsta ya napisala tak writeln('nomer stroki')

Подряд сообщения не постим. Есть кнопка редактирования. Alex21

Последний раз редактировалось Alex21; 20.06.2008 в 11:35.
anco вне форума Ответить с цитированием
Старый 19.06.2008, 12:26   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот довольно простое решение, без излишеств.
Код:
Uses Crt;
Var a:array[1..10,1..10] of integer;
    n,m,i,j,k:integer;
Begin
ClrScr;
write('Kolichestvo strok n=');
readln(n);
write('Kolichestvo stolbcov m=');
readln(m);
for i:=1 to n do
for j:=1 to m do
   begin
     write('a[',i,',',j,']=');
     readln(a[i,j]);
   end;
ClrScr;
writeln('Matrica:');
for i:=1 to n do
  begin
    for j:=1 to m do
    write(a[i,j]:5);
    writeln;
  end;
for i:=1 to n do
   begin
    k:=0;
    for j:=1 to m do
    if a[i,j] mod 2=0 then
      begin
        k:=k+1;
      end;
    if k=m then writeln('Stroka ',i);
   end;
readln
end.
puporev вне форума Ответить с цитированием
Старый 19.06.2008, 14:42   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от anco Посмотреть сообщение
A kak vyvesti nomera strok?
В моём коде уже есть вывод номера строки:

Код:
Flag := True;   
For y := 1 To n Do   
  Begin   
    For x := 1 To m Do If Mass[x,y] Mod 2 = 1 Then Flag := False;   
    If Flag = True Then Writeln(y);   // Вот он здесь выводит номер.
  End;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 19.06.2008, 23:45   #8
anco
Пользователь
 
Аватар для anco
 
Регистрация: 19.06.2008
Сообщений: 15
По умолчанию

Карась. я тоже так думала, но почему я не вижу результата???
anco вне форума Ответить с цитированием
Старый 19.06.2008, 23:49   #9
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от anco Посмотреть сообщение
Карась. я тоже так думала, но почему я не вижу результата???
Показывайте весь код целиком. У меня всё работает.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 20.06.2008, 08:32   #10
anco
Пользователь
 
Аватар для anco
 
Регистрация: 19.06.2008
Сообщений: 15
По умолчанию

Код:
Program z3_4;
  Uses
    Crt;
  Const
    N=10;
    M=10;
	Var
    x, y,n1,m1: Integer;
	  Mass : Array [1..n,1..m] of Integer;
    Flag : Boolean;
  Begin
    ClrScr;
  	write('количество строк ');
    readln(n1);
   	write('количество столбцов ');
    readln(m1);
	For y := 1 To n1 Do
	  for x := 1 To m1 Do
	    begin
	      write('Mass[', x, ',', y,']=');
	      readln(Mass[x,y]);
	    end;
    for y:=1 to n1 do
      begin
        for x:=1 to m1 do write(Mass[x,y]:5);
        writeln;
      end;
      writeln;
	Flag := True;
	For y := 1 To n Do
	  begin
	    For x := 1 To m1 Do If Mass[x,y] Mod 2 = 1 Then Flag := False;
	    If Flag = True Then Writeln(y);
	  end;
End.

Последний раз редактировалось Alex21; 20.06.2008 в 11:35.
anco вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный Массив n01R Помощь студентам 9 19.12.2009 16:41
Двумерный массив... slim5 Помощь студентам 2 20.06.2008 23:16
Двумерный массив Jodu Помощь студентам 18 05.12.2007 22:44
Двумерный массив help Imperceptible Паскаль, Turbo Pascal, PascalABC.NET 25 02.03.2007 20:00