Домашние задания: Информатика

Помогите с информатикой, цикл for

Составьте программу, решающую следующую задачу: В текущем месяце бригада в каждый последующий день работы выпускала на три изделия больше, чем в предыдущий. В первый день было выпущено 42 изделия, что составило 67 % дневной нормы. В месяце 26 рабочих дней. Сумеет ли бригада выполнить месячную норму.

Задача сводится к нахождению количества изделий за месяц при условии ежедневном увеличении на 3. Затем необходимо сравнить найденную сумму с нормой.
Так то код я сделала вот только он не выводит верное количество деталей при увеличении на три. При личном подсчете у меня другие цифры, я уже заманалас, который час сижу и так, и сяк, а он в никакую. Что не так с кодом?
Тут без пояснений кода программы никак. Ибо код слишком длинный и замороченный. Да и непонятно, то ли задание кривое, то ли тут просто в коде заморочки - ибо задание какое? - "Сумеет ли бригада выполнить месячную норму." Т.е. всего лишь ответ на вопрос должен быть, исходя из вычислений. Остальное выводить необязательно. Ну а даже если и выводить, то зачем столько переменных и столько действий? Опять же, что за другие цифры при личном подсчете (какие именно)? Программа вон какая получается:
 Program P1; 
uses crt;
var mn, n: real; // mn - месячная норма, n - количество деталей
i: integer;
begin
clrscr;
n:=42;
mn:=(42/0.67)*26;
for i:=2 to 26 do n:=n+3;
writeln ('Бригада изготовила ', n, ' деталей.');
writeln ('Месячная норма составляет: ', mn, ' деталей.');
if n
Аранов Андрей
Аранов Андрей
43 559
Лучший ответ
У тебя много лишнего в коде. Вот пример твоей задачи.
program Brigada;
var
d, n, k: integer;
s: real;
begin
n := 42; // количество изделий в первый день
k := 3; // прирост изделий в каждый последующий день
s := 0; // суммарное количество изделий за месяц
for d := 1 to 26 do // цикл по рабочим дням в месяце
begin
s := s + n; // добавляем к сумме количество изделий за текущий день
n := n + k; // увеличиваем количество изделий на прирост для следующего дня
end;
writeln('Бригада выполнила ', s:0:0, ' изделий за месяц.'); // выводим результат на экран
end.

Всего деталей должный сделать 63
Игорь Термонен Что за s:0:0 в выводе? И почему 63 детали? Я на бумаге по считала, при приросте за 26 дней будет 1884 детали
Бахтияр Тураров Извиняюсь, не так понял, да, 1884 детали и это верно. s:0:0 в языке Pascal означает форматирование числа s с нулевой шириной и нулевым количеством десятичных знаков. Это означает, что число s будет выведено без пробелов и дробной части. Например, если s = 123.456, то writeln('s:0:0 = ', s:0:0) выведет на экран s:0:0 = 123. Можешь не писать это
Светлана Ханова А почему все-таки 1884 детали?
В первый день 42 детали.
Во второй 45 деталей.
В третий 47
И т.д.
42+45+48+51+54+57+60+63+66+69+72+75+78+81+84+87+90+93+96+99+102+105+108+111+114+117 = 2067
Бахтияр Тураров А, не мы все не правы. 42 это 67% от нормы, значит 63 это дневная норма. Соответственно 63*26=1638
Бахтияр Тураров Всё-таки тут 63, так как 67% это 2/3(66.6 округлили), отсюда 21 - 33% (1/3), 42 - 67%(2/3), 63 - 100% (3/3). Всего они сделают за 26 дней 1117 деталей (42+45+...+79)
1117<1638. Да, они не выполнят месячную норму.
Бахтияр Тураров Это нужно для того, чтобы узнать месячную норму. В условии сказано, что 42 это 67% от дневной нормы, значит 63 - 100%. Найдем месячную норму: 63*26 = 1638
Узнаем сколько сделаю работяги деталей за 26 дней: (42+45+...+79) 1117.
Надеюсь понятно объяснил