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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2009, 07:59   #1
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию Неожиданно перестал работать код

Код:
uses crt;
var mas1:array[1..1000] of Integer;
count,i,j,n : Integer;
    	is_simple : Boolean;
   	 temp,sum  : Real;
begin
     	writeln('Vvedite razmernost massiva' );
     	readln(n);
     	for i:=1 to n do
         	begin
         		write('Vvedite '  ,i,' element massiva');
         		readln(mas1[i]);
         	end;
     	for i:=1 to n do
         	writeln(mas1[i]);
     	begin
          		is_simple:=false;
          		for j:= 1 to i do
         		 begin
               		if((i mod j) = 0) and (j>1) and (j<i) then
               		begin
               		is_simple:=true;
               		break;
               		end;
          		end;
          	if is_simple=false then sum:=sum+mas1[i];
     	end;
writeln('Summa = ',sum);
readln;
end.
Неожиданно перестала работать.... отладку делать влом, кто нить по 1ому взгляду может сказать где косяк.
kry вне форума Ответить с цитированием
Старый 12.01.2009, 08:16   #2
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

Он почему то не считает сумму.
kry вне форума Ответить с цитированием
Старый 12.01.2009, 08:49   #3
Doc
Пользователь
 
Аватар для Doc
 
Регистрация: 09.01.2009
Сообщений: 15
По умолчанию

is_simple определяет простое ли число?
и смысл этого кода найти сумму всех составных чисел в массиве?
и почему Sum:Real, когда массив - Integer???

Последний раз редактировалось Doc; 12.01.2009 в 08:53.
Doc вне форума Ответить с цитированием
Старый 12.01.2009, 08:52   #4
kry
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 13
По умолчанию

is_simple определяет простое ли число?
да

и смысл этого кода найти сумму всех составных чисел в массиве?
Сумму всех чисел чьи порядковые номера - простые
kry вне форума Ответить с цитированием
Старый 12.01.2009, 09:07   #5
Doc
Пользователь
 
Аватар для Doc
 
Регистрация: 09.01.2009
Сообщений: 15
По умолчанию

попробуй второй цикл так:
Код:
for i:=2 to n do
begin
writeln(mas1[i]);
is_simple:=true;
for j:= 2 to 9 do
begin
   if((i mod j) = 0) and (i<>j)) then
   begin
     is_simple:=false;
     break;
   end;
end;
if is_simple=true then sum:=sum+mas1[i];
end;
Здесь мы попробуем разделить номер числа на число от 2 до 9 (кроме него самого, когда i будет от 2 до 9) - если поделится без остатка хоть на одно из них - то число составное
Doc вне форума Ответить с цитированием
Старый 12.01.2009, 09:11   #6
Doc
Пользователь
 
Аватар для Doc
 
Регистрация: 09.01.2009
Сообщений: 15
По умолчанию

т.е. не второй цикл, а вообще циклы поставь так
и сделай Sum:Integer - у тебя ведь массив целых чисел.
Doc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VB перестал находить стандартные функции neugadal Microsoft Office Excel 1 06.11.2008 12:31
Перестал работать яваскрипт, причем во всех браузерах сразу. Adamant Свободное общение 6 12.09.2008 23:55
Перестал работать поиск в ХРюше. Adamant Свободное общение 5 23.08.2008 01:30