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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2009, 13:25   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Вопрос готовый код!нужна помошь в проверке(корректировке)

мэйны!проверьте пожалуйста ,если не затруднит,код и подскажите как можно решить 2 задачи!1|Заданы 2 числа a и b.Переменной t присвоить значение истина,если в одномерном массиве существует хотя бы один элемент,кратный a и не кратный b.
Вот код:
Код:
const
n=10;
var
a,b,c:integer;
t:boolean;
m:array[1..10]of integer;
begin
repeat
for a:=1 to n do
m[a]:=random(100);
writeln('введите 2 числа от 1 до 10:');
readln(b,c);
for a:=1 to n do
if t=((m[a] mod b) = 0) and ((m[a] mod c) <>0) then break;
if t then
begin
writeln('правда-',t);
for a:=1 to n do
write(m[a],'|')
end
else
begin
writeln('ложь-',t);
for a:=1 to n do
write(m[a],'|')
end;
readln;
until
t=true
end.
НО НА ВЫХОДЕ получаеться:
введите 2 числа от 1 до 10:
3
4
ложь-False
17|94|9|93|82|90|28|65|99|84|

здесь на 3 делиться и неделиться 5 чисел...Не понимаю в чём проблема??;


2|Вычислить сумму тех столбцов двумерного массива размерностью 5*5,последний элемент которых равен элементу ,стоящему на главной диагонали.У меня задумка изначальная есть,но проблема с выводом двумерного массива,да и с вычислениями мне кажеться!
Вот код:
Код:
var
 a:array[1..5,1..5]of byte;
 i,j:integer;{ i-строка, j-столбец...}
 s:real;
 begin
 randomize;
 for i:=1 to 5 do
 begin
 for j:=1 to 5 do
 a[i,j]:=random(100);
 end;
 for j:=1 to 5 do
 if a[5,j]=a[3,3] then{СРАВНИВАЕМ 5УЮ СТРОКУ ВСЕХ J-СТОЛБЦОВ С ЦЕНТРАЛЬНЫМ ЭЛЕМЕНТОМ МАССИВА}
 begin
 s:=0;
 for i:=1 to 5 do
 begin
 writeln;
  s:=s+a[5,j];
  write(a[i,j]:5);
  writeln;
  write(s)
  end
  end 
  else
  begin
  for i:=1 to 5 do
  write(a[i,j]:5);
  writeln;
  writeln;
  end;
  writeln(s,'     ','нет таких элементов в столбцах');
  end.
From Stilet: Оформлять читабельно будет Пушкин?

Последний раз редактировалось -ushёl-; 13.03.2009 в 16:06.
-ushёl- вне форума Ответить с цитированием
Старый 13.03.2009, 13:31   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

В первой задаче вместо
Код:
for a:=1 to n do
if t=((m[a] mod b) = 0) and ((m[a] mod c) <>0) then break;
нужно
Код:
t := False;
for a:=1 to n do
  if ((m[a] mod b) = 0) and ((m[a] mod c) <>0) then
  begin
    t := True;
    break;
  end;
Во второй задаче, если я правильно понял условие, вместо
Код:
for j:=1 to 5 do
if a[5,j]=a[3,3] then{СРАВНИВАЕМ 5УЮ СТРОКУ ВСЕХ J-СТОЛБЦОВ С ЦЕНТРАЛЬНЫМ ЭЛЕМЕНТОМ МАССИВА}
должно быть
Код:
for j:=1 to 5 do
if a[5,j]=a[j,j] then{СРАВНИВАЕМ 5УЮ СТРОКУ ВСЕХ J-СТОЛБЦОВ С ЭЛЕМЕНТОМ, СТОЯЩИМ НА ГЛАВНОЙ ДИАГОНАЛИ}
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/

Последний раз редактировалось Stilet; 13.03.2009 в 14:35.
OCTAGRAM вне форума Ответить с цитированием
Старый 13.03.2009, 14:08   #3
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

с первой всё ок!!!!а вот со 2 ой проблема всё равно.
if a[5,j]=a[j,j] then- тут мне кажеться должно стоять ...=a[3,3] then{если просто визуально представить или нарисовать квадрат чисел,то центральный элемент как раз на месте 3,3}
вот только с нормальным выводом массива непонятно...
70
46
63
98
29



11
9
55
20
73



55
58
89
74
21



16
98
1
74
34



91
2
0
46
86

0 нет таких элементов в столбцах
как можно вывести его в квадратном виде,что то ни как не получаеться?=)
-ushёl- вне форума Ответить с цитированием
Старый 13.03.2009, 14:18   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
for i:=1 to 5 do begin
for j:=1 to 5 do
if a[i,j]<10 then  write('   ',a[i,j])
else
write('  ',a[i,j]);
writeln;
end;
вот тебе вывод в квадратном виде
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 13.03.2009 в 14:25.
maladoy вне форума Ответить с цитированием
Старый 13.03.2009, 14:21   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
if a[5,j]=a[j,j] then- тут мне кажеться должно стоять ...=a[3,3] then{если просто визуально представить или нарисовать квадрат чисел,то центральный элемент как раз на месте 3,3}
Из условия:
Цитата:
2|Вычислить сумму тех столбцов двумерного массива размерностью 5*5,последний элемент которых равен элементу ,стоящему на главной диагонали
Про центральный элемент ни слова.
Нужен элемент текущего столбца, стоящий на главной диагонали. То есть a[j,j].

Еще вариант вывода в "квадратном виде".
Код:
for i:=1 to 5 do begin
for j:=1 to 5 do 
 write(a[i,j]:4);
writeln;
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.03.2009, 14:40   #6
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

else
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(a[i,j]:5);
writeln;
end;
writeln(s,' ','нет таких элементов в столбцах');
end
end.
на выходе:
..нельзя изменять значение переменной цикла внутри этого цикла...

в коде стоит главный цикл после цикла "заполнения массива"-может причина с ним связана?
begin
for j:=1 to 5 do
a[i,j]:=random(100);
end;
{s:=0;}
for j:=1 to 5 do
if a[5,j]=a[3,3] then
{СРАВНИВАЕМ 5УЮ СТРОКУ ВСЕХ J-СТОЛБЦОВ С ЦЕНТРАЛЬНЫМ ЭЛЕМЕНТОМ МАССИВА}
begin

Последний раз редактировалось Stilet; 13.03.2009 в 15:04.
-ushёl- вне форума Ответить с цитированием
Старый 13.03.2009, 14:46   #7
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

имхо косяк где то выше!!! тэг "код" сознательно игнорируем?
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 13.03.2009, 14:54   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

-ushёl-, Если делать программу по тому условию, что вы написали, то она будет выглядеть так:
Код:
uses crt;
var
a:array[1..5,1..5]of byte;
i,j:integer;
s : longint;
b : boolean;
begin
clrscr;
randomize;
for i:=1 to 5 do
 begin
 for j:=1 to 5 do
  begin
  a[i,j]:=random(20);
  write(a[i,j]:4);
  end;
 writeln;
 end;
writeln;

b := false;
for j:=1 to 5 do
 if a[5,j] = a[j,j] then
  begin
  s:=0;
  for i:=1 to 5 do
   s:=s+a[i,j];
  b := true;
  writeln('Сумма столбца ',j,'= ',s:5)
  end;

if not b then writeln(s:5,' ','нет таких элементов в столбцах');
readln;
end.
Стоит заметить, что сумма 5-го столбца будет выводиться всегда (надеюсь, понимаете почему).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.03.2009, 15:26   #9
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

пробовал.. не пошло
-ushёl- вне форума Ответить с цитированием
Старый 13.03.2009, 15:28   #10
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

if a[5,j] = a[j,j] then - здесь необходимо поставить а[i,j]?Работает всё отлично,только суммирование идёт всех столбцов...

Последний раз редактировалось -ushёl-; 13.03.2009 в 15:31. Причина: .
-ushёl- вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа "простые итерации". Готовый код. Проблема с компилированием. Oleg330 Общие вопросы C/C++ 9 25.12.2008 23:51
Нужна помошь с c++ Sanctus Общие вопросы C/C++ 3 02.10.2008 03:22