Змінюй хід війни! Допомагай ЗСУ!

Pascal , покажите где ошибка ?

  • Автор теми Автор теми Honorocker
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 10.11.2007
Повідом.: 947
Pascal , покажите где ошибка ?

В общем есть задача :
В диапозоне от -100..100 посчитать количество и сумму чисел деляшихся одновременно на 3 и 4 .



Вот ссобственно программа , но компилиться не хочет , и выбивает ошибку ...
обьясните плз где я ошибся !!!

program One ;
uses crt ;
var
a,z,w,q,e,diap:integer;
begin
clrscr;
q:=3;
e:=4;
diap:=(diap >= (-100);
diap:=(diap <= 100);
a:=(diap div q ) div e;
z:=(diap div e) div q ;
w:= a + z ;
writeln ('The number is :',w);
readkey;
end.



Помогите , а то и обратиться не к кому (((
 
похоже на одну большую ошибку.
компилятор ругается по крайней мере на это

мечтаю стать преподом только для того, чтобы выдергивать по пальцу за каждое такое объявление a,z,w,q,e,diap:integer; :D

обратиться всегда можно к книжке.
 
На 3 и 4 делятся числа, которые делятся на 12. Просто говорю.
 
************ от такого кода у меня ...
 
Не ругайтесь , учу только вторую неделю ...
да и про 12 я тоже уже догадался )))
 
Такое ощущение, что ты вторую неделю учишь его путем подкладывание на ночь учебника под подушку :)
Помимо просто грамматических ошибок собсно цикл по диапазону где?
 
ТС, и вообще забей - МИТ рулит :) Посилання видалено
 
Как то так.
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
i,summa,kolvo:integer;

begin
summa:=0;
kolvo:=0;
for i:=-100 to 100 do
if ((i mod 3)=0) and ((i mod 4)=0) then
begin
writeln(i);
summa:=summa+i;
kolvo:=kolvo+1;
end;
writeln('summa - ',summa,' kolvo - ',kolvo);
readln;
end.
 
Похоже, надо выносить студенческие задачи отдельной веткой. Иначе тут все затонет в подобных темах ближе к сессии.
 
Как то так.
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
i,summa,kolvo:integer;

begin
summa:=0;
kolvo:=0;
for i:=-100 to 100 do
if ((i mod 3)=0) and ((i mod 4)=0) then
begin
writeln(i);
summa:=summa+i;
kolvo:=kolvo+1;
end;
writeln('summa - ',summa,' kolvo - ',kolvo);
readln;
end.
только ему в задании там writeln(i); не нужен, это разве что только для собственного тестирования, чтобы видеть какие цифры делятся. Ему в задании только последний writeln нужен :rolleyes:
И ещё там нет исключения, если ни одна цифра не будет делиться, там конечно же такие цифры будут, но всё-таки...
 
$sum = 0;
$num = 0;
$low_lim = -100;
$high_lim = 100;
$nod = 12;
for ( $i=round($low_lim/$nod); $i <= round($high_lim/$nod); $i++ )
if ( $i!=0 ) { $sum +=$i; $num++; }
print $sum*$nod;
print $num;
концептуально на сиподобном я бы сделал так

только ему в задании там writeln(i); не нужен, это разве что только для собственного тестирования, чтобы видеть какие цифры делятся. Ему в задании только последний writeln нужен :rolleyes:
И ещё там нет исключения, если ни одна цифра не будет делиться, там конечно же такие цифры будут, но всё-таки...

там нет самого главного - 0 на 12 не делится
 
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
i,summa,kolvo:integer;

begin
summa:=0;
kolvo:=0;
for i:=-100 to 100 do
if ((i mod 3)=0) and ((i mod 4)=0) then
begin
summa:=summa+i;
kolvo:=kolvo+1;
end;
if (kolvo = 0) then writeln('В заданном диапазоне не найдено ни одной цифры, которые делятся одновременно на 3 и 4!')
else writeln('summa: ',summa,' ;kolvo: ',kolvo);
readln;
end.

там нет самого главного - 0 на 12 не делится
ну так не на ноль же :)
ноль делится на любую цифру, кроме себя :rolleyes:
 
Останнє редагування:
ну может, не помню уже, тут если вдалбливаться в термины, что значит делится...
ну по сути, это уберет только иф и сделает цикл еще проще и быстрее, кстати, интересно, что вычислительно сложнее, цикл с 200 итерациями, или с 16, но с более сложным условием?
 
ну может, не помню уже, тут если вдалбливаться в термины, что значит делится...
ну по сути, это уберет только иф и сделает цикл еще проще и быстрее, кстати, интересно, что вычислительно сложнее, цикл с 200 итерациями, или с 16, но с более сложным условием?
ну в задании же сказано, чтобы число одновременно делилось и на 3, и на 4, так вот ноль этому условию и соответствует. 0/3=0; 0/4=0.

А как там можно цикл упростить? Это же массив, там всё равно все числа будет перебирать от -100 до 100.
 
прастити за офтоп лол
Код:
filter(lambda x: 1 if not x % 12 else 0, xrange(-100, 100))
(питон)
 
Я, конечно, не уверен, но вроде бы, сумма чисел, делящихся на 12 в диапазоне от 0 до 100, является модулем той же суммы в диапазоне от -100 до 0, т.е. общая сумма должна быть 0.
 
ну в задании же сказано, чтобы число одновременно делилось и на 3, и на 4, так вот ноль этому условию и соответствует. 0/3=0; 0/4=0.

А как там можно цикл упростить? Это же массив, там всё равно все числа будет перебирать от -100 до 100.

там не сказаано, что делится без остатка. что вы проверяете модом, там просто делится, я так понимаю, что 0, как и уши мертового осла или шкуру неубитого медведя, нельзя делить ни на 3 ни на 4
я ж писал как упростить цикл не 200 итераций а 16, органихзуете цикл по сомножителю 12 и все

Я, конечно, не уверен, но вроде бы, сумма чисел, делящихся на 12 в диапазоне от 0 до 100, является модулем той же суммы в диапазоне от -100 до 0, т.е. общая сумма должна быть 0.
так тогда можно было сразу ответ писать типа сум=0 кол-во=2*100/12+1 без никаких циклов
а если диапазон будет -50 150 ?? вроде такие задачи должнфы учить думать и писать гибкие алгоритмы, в которых заложена возможность измеения заданных констант, иначе грош цена такой "учебе"
 
там не сказаано, что делится без остатка. что вы проверяете модом, там просто делится, я так понимаю
ну с таким успехом тогда вообще все числа в мире делятся одновременно на 3 и 4 :D

я ж писал как упростить цикл не 200 итераций а 16, органихзуете цикл по сомножителю 12 и все
причём тут сомножители, если цикл всё равно все числа будет перебирать? ты вообще предлагаешь ещё дольше сделать, у тебя получится два цикла, первый на 200, а второй на 16.
 
Я просто сказал это с точки зрения оптимизации. например, если диапазон от -50 до 150, можно сразу начинать считать от 51 до 150
 
Назад
Зверху Знизу