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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2009, 17:04   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Вопрос массивы

кто нибудь может подсказать как найти в массиве любое число кратное А и не кратное В? Числа A и B вводяться с клавиатуры.Задачу вроде решил,но условие if проверяет кратен или не кратен последний элемент массива???Как возможно сделать,что бы проверялся весь массив чисел на кратность введённых чисел??? моё решение:
Код:
var
 a,b,c:integer;
     t:boolean;
     M:array[1..5] of integer;
     begin
      repeat
       for a:=1 to 5 do
        M[a]:=random(100);
         writeln('введите 2 числа в пределах от 1 до 10');
         readln(b,c);
         t:=(M[a] mod b = 0)and not(M[a] mod c = 0);{может здесь проблема???}
          if t = true then
                 begin
                  for a:=1 to 5 do
                  write(M[a], '|') ; 
                  writeln('правда-',t)
                 end
                 else
                    begin
                     for a:=1 to 5 do
                     write(M[a], '|');
                     writeln('ложь-',t)
                    end;
         until 
            t = true;   
       end.

Последний раз редактировалось Stilet; 02.03.2009 в 08:50.
-ushёl- вне форума Ответить с цитированием
Старый 01.03.2009, 17:13   #2
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
По умолчанию

В отмеченом месте переменная a как таковая неопределена в своем значении. До этого она была счетчиком цикла, стало быть, возможно, она примет значение 5. Следовательно, в том месте t:=(M[5] mod b=0)and not (M[5] mod c=0) идет проверка пятого элемента на условие. Другие элементы не рассматриваются.
Silence is of great value...
Jean-Esther вне форума Ответить с цитированием
Старый 01.03.2009, 17:17   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Не понимаю, зачем вам логическая переменная и цикл repeat.
Вот цикл:
Код:
for i:=1 to n do
 if (mas[i] mod A = 0) and (mas[i] mod B <> 0) then
   begin
   write(mas[i]:4);
   if not t then t := true;
   end;
Полный код:
Код:
uses crt;
const n=10;
var
A,B : integer;
i : integer;
mas : array[1..n] of integer;
t : boolean;

begin
clrscr;
randomize;
for i:=1 to n do
 begin
 mas[i] := random(100);
 write(mas[i]:4);
 end;
writeln;
writeln;
write('Enter A: ');
readln(A);
write('Enter B: ');
readln(B);

t := false;
writeln('Chisla kratnye A i ne kratnye B: ');
for i:=1 to n do
 if (mas[i] mod A = 0) and (mas[i] mod B <> 0) then
   begin
   write(mas[i]:4);
   if not t then t := true;
   end;
if not t then writeln('Net takih elementov!');
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 01.03.2009 в 17:33. Причина: дополнил
Sazary вне форума Ответить с цитированием
Старый 01.03.2009, 17:29   #4
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

цикл repeat-ввёл для себя,чтобы каждый раз не компилировать заново.а логическая переменная здесь нужна по заданию:Заданы два числа А и В.Переменной t присвоить значение истина,если в одномерном массиве существует хотя бы один элемент,кратный А и не кратный В.
-ushёl- вне форума Ответить с цитированием
Старый 01.03.2009, 17:31   #5
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

а зачем ты ввёл clrscr;
randomize??
-ushёl- вне форума Ответить с цитированием
Старый 01.03.2009, 17:36   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

-ushёl- Добавил в листинг.
clrscr; - очистка экрана. Требует подключения модуля crt (uses crt; )
randomize - инициализирует генератор случайных чисел (чтобы при каждом запуске программы числа были разные)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

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

ясно.спасибо
-ushёl- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы Seryoga Помощь студентам 9 08.12.2009 16:20
Массивы StudentPolitech Помощь студентам 7 05.12.2008 01:30
массивы в C++ Monkey Помощь студентам 0 03.06.2008 20:03