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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.04.2015, 14:03   #1
Smiikee
Пользователь
 
Регистрация: 18.04.2015
Сообщений: 13
По умолчанию Программа студента

Добрый день.
Задали сделать программу, получилось что получилось, не знаю куда вставить строчку чтобы она работала корректно, т.е. если в матрице нет 0 элементов то строчка выводится и пишет Net strok bez 0 elementov так, как это и должно быть...
Если в матрице есть нулевой элемент, то программа пишет Stroka ',i,' ne soderjit ni odnogo 0 elementa, нажимаешь Enter и выходит строчка Net strok bez 0 elementov , нажимаешь опять Enter и далее идёт нормальная сортировка последнего столбика.
Мне нужно чтобы не выскакивало две строчки,
т.е. либо это, если нет нулей Net strok bez 0 elementov ,
либо это, если есть нули Stroka ',i,' ne soderjit ni odnogo 0 elementa.
Подскажите пожалуйста что не так.


Само задание :
Дана целочисленная квадратная матрица.
1. Найти номер первой из строк матрицы, не содержащей ни одного нулевого элемента. Если таковой нет, то вывести соответствующее сообщение.
2. Упорядочить положительные элементы последнего столбца матрицы по убыванию квадратов значений.
Для отладки программы числа последовательности сформировать с помощью генератора случайных чисел.

Код:
uses crt;
const n=3;
var
matrix:array [1..n,1..n] of integer;
i,j:integer;
zeropresent:boolean;
x:integer;
begin  clrscr;
Randomize;
  for i:=1 to n do begin
    for j:=1 to n do begin
      matrix[i,j]:=Random(5)-3;
      write(matrix[i,j]:3);
      end;
    writeln;
    end;

zeropresent:=false;
for i:=1 to n do begin
  for j:=1 to n do
    if matrix[i,j]=0
    then zeropresent:=true;

  if zeropresent=true
  then begin
       zeropresent:=false;
       continue;
       end
  else begin
       Writeln('Stroka ',i,' ne soderjit ni odnogo 0 elementa');
       Readln;
       Break;
       end;
  end;

  if zeropresent=false
  then Writeln('Net strok bez 0 elementov');
  Readln;

  writeln;

for i:= 1 to n-1 do
  for j:=i+1 to n do
    if (matrix[j,n] > matrix[i,n])
	 and(matrix[j,n]>0) and (matrix[i,n]>0)
    then begin
	 x:=matrix[i,n];
	 matrix[i,n]:= matrix[j,n];
	 matrix[j,n]:= x;
	 end;


for i:=1 to n do begin
  for j:=1 to n do
    write(matrix[i,j]:3);
  writeln;
end;
Readln;
end.

Последний раз редактировалось Stilet; 18.04.2015 в 14:13.
Smiikee вне форума
Старый 18.04.2015, 14:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Предлагаю внедрить процедуру:
Код:
procedure search;
var i,j:integer; b:boolean;
begin
 for i:=1 to n do begin b:=true;
   for j:=1 to n do  if matrix[i,j]=0 then begin b:=false; break;end;
   if b then begin write(i,' тая строчка без нулей'); exit; end;
 end; writeln('Немае таких строчек');
end;
Идея ясна?
I'm learning to live...
Stilet вне форума
Старый 18.04.2015, 18:00   #3
Smiikee
Пользователь
 
Регистрация: 18.04.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Предлагаю внедрить процедуру:
Код:
procedure search;
var i,j:integer; b:boolean;
begin
 for i:=1 to n do begin b:=true;
   for j:=1 to n do  if matrix[i,j]=0 then begin b:=false; break;end;
   if b then begin write(i,' тая строчка без нулей'); exit; end;
 end; writeln('Немае таких строчек');
end;
Идея ясна?
Не могу понять куда вставить эту процедуру
Smiikee вне форума
Старый 18.04.2015, 18:04   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну например после цикла ввода массива
Ты же код сам писал?
I'm learning to live...
Stilet вне форума
Старый 18.04.2015, 18:33   #5
Smiikee
Пользователь
 
Регистрация: 18.04.2015
Сообщений: 13
По умолчанию

Я думаю массив немного другое, это же матрица её тоже считают как массив? Код не мной написан
Smiikee вне форума
Старый 18.04.2015, 18:59   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
это же матрица её тоже считают как массив?
Да. А что, преподаватель тебе говорил что матрица это не массив?
Цитата:
Код не мной написан
Пичаль.
По моему мнению выкинуть нужно все что начинается от zeropresent:=false;
До самого последнего end.
Ты процедуры то умеешь в код втаптывать??
I'm learning to live...
Stilet вне форума
Старый 18.04.2015, 20:20   #7
Smiikee
Пользователь
 
Регистрация: 18.04.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да. А что, преподаватель тебе говорил что матрица это не массив?

Пичаль.
По моему мнению выкинуть нужно все что начинается от zeropresent:=false;
До самого последнего end.
Ты процедуры то умеешь в код втаптывать??
Я не заочке, мне препод ничего не говорил)
вообщем вставил
Код:
i:=1;
  while i<=n do begin
    zeropresent:=False;
    for j:=1 to n do
      if matrix[i,j]=0 then
        zeropresent:=True;
    if not zeropresent then begin
      WriteLn('Stroka ',i,' ne soderjit ni odnogo 0 elementa');
      Break;
    end;
    Inc(i);
  end;
  if i>n then
    Writeln('Net strok bez 0 elementov');
всё получилось. Спасибо

Последний раз редактировалось Stilet; 18.04.2015 в 20:38.
Smiikee вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
научите студента! megostudent Помощь студентам 4 28.09.2011 22:12
Задания от студента. Evten Фриланс 7 30.11.2010 10:50
Программа дистанционного обучени студентов, тестирование и оценка студента dativ2009 Помощь студентам 0 14.06.2009 15:22
С днём студента! Greblin Свободное общение 5 26.01.2009 02:24