1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Задание: Вводится размерность одномерного массива A(N) и его элементы. Вывести на экран сумму составных чисел среди элементов массива. Вот программка:
Исходный код
var i,k,s,n:integer; a:array[1..n] of integer; begin readln(n); i:=1; s:=0; for i = 1 to n do begin k:=0; k:=a(i)mod2; if k=0 then goto m1 else k:=a(i)mod3; if k=0 then goto m1 else k:=a(i)mod5; if k=0 then goto m1 else k:=a(i)mod7; if k=0 then goto m1; m1: s:=s+a(i); end; writeln (s); end.
Теги !
Но она даже не компилируется (в месте, отмеченном красным цветом)... Как думаете, почему? и вообще, как она (программка)? действенная?
const n_max=100; var i,s,n:integer; a:array[1..n_max] of integer;
begin writeln ('Razmer massiva raven '); readln(n);
s := 0; writeln ('Elementy massiva:');
for i := 1 to n do begin
readln(a[i]); if (a[i] mod 2 = 0) and (a[i] <> 2) then s := s + a[i] else if (a[i] mod 3 = 0) and (a[i] <> 3) then s := s + a[i] else if (a[i] mod 5 = 0) and (a[i] <> 5) then s := s + a[i] else if (a[i] mod 7 = 0) and (a[i] <> 7) then s := s + a[i];
end;
writeln ('Summa = ', s); end.
и
Const n=5; var i,s : Integer; a: array [1..N] of Integer;
function isNotPrime(X: word): boolean; var i: integer; Begin isNotPrime:=true; for i:=2 to trunc(sqrt(x)) do if x mod i = 0 then Exit; isNotPrime:=false End;
begin for i:=1 to N do readln(a[i]); s:=0; for i:=1 to N do if isNotPrime(a[i]) then s:=s+a[i]; Writeln('Summa = ',s); end.
и
Const n=5; var k,i,s : Integer; p: boolean; a: array [1..N] of Integer;
begin for i:=1 to N do readln(a[i]); s:=0; for i:=1 to N do begin { Проверка } p:=true; k:=2; while p and (sqr(k)<=n) do begin if (a[i] = 1) or (a[i] = 2) then break; if a[i] mod k=0 then p:=false else k:=k+1; end; { суммирование } if not p then s:=s+a[i]; end; Writeln('Summa = ',s); end.
(Во второй и третьей массив состоит из 5 элементов, а в первой размер массива надо вводить...)