СПРОСИ ПРОФИ
👍
0
👎 08

Программа

Вывод результатов в виде таблицы. Запас картофеля на складе составляет Q т в начале октября. Ежеме­сячно для продажи изымается S т, а естественные ежемесячные потери полагаются равными р % текущего запаса. Найти, сколько картофеля остается на складе к концу октября, ноября, декабря, ..., июня.
Задание №2.
Модифицировать первую задачу, отразив в ней следующие измененные условия.
Естественная убыль в октябре составляет p %, а в каждый последующий месяц увеличивается по сравнению с предыдущим в 2 раза.
Pascal языки программирования программирование обучение     #1   26 сен 2013 00:04   Увидели: 0 клиентов, 1 специалист   Ответить
👍
0
👎 0
Макс, на чём программу пишете?
Можно пойти разными путями:
- Написать рекурсивную процедуру, которой Q подаётся как параметр. В теле процедуры делается перерасчёт Q (простой рекуррентной формулой) и вывод на консоль (или в файл) строки "месяц: Q". Для условия выхода из этой процедуры Вам понадобится переменная для месяцев.
- Если вы не любите рекурсию — обсчитывайте новый запас в цикле. В теле цикла, помимо рекуррентной формулы для расчёта запаса, будет вывод на консоль/в файл всё той же строки. Счётчиком цикла будут месяцы.

В задании 2 всё ровно то же самое, просто чуть-чуть изменится формула пересчёта Q.

Напишите здесь хотя бы попытку запрограммировать какой-нибудь из этих способов.
👍
0
👎 0
на языке паскаль
  #3   26 сен 2013 00:49   Ответить
👍
0
👎 0
Ну вот :) Хоть какой нибудь код напишите, чтобы обозначить — в чём конкретно Ваша сложность.
👍
0
👎 0
в общем просмотрите правильность программ
  #6   26 сен 2013 01:03   Ответить
👍
0
👎 0
var Q: integer;
S: integer;
P: integer;
NaKonecMes: array[0..9] of integer;
i: integer;
begin
NaKonecMes[0]:=Q
for i:=1 to 9
do begin
NaKonecMes:=NaKonecMes[i-1]-S-NaKonecMes[i-1]*P/100;
end;
end;

begin
NaKonecMes[0]:=Q
NaKonecMes[1]:=NaKonecMes[0]-S-NaKonecMes[0]*P/100
for i:=2 to 9
do begin
NaKonecMes:=NaKonecMes[i-1]-S-NaKonecMes[i-1]*P*2/100;
end;
end;

вот проверьте
  #4   26 сен 2013 00:49   Ответить
👍
0
👎 0
Ну да, в целом, идея верная, только:
1. В теле цикла делается присваивание NaKonecMes:= ...
2. Во второй задаче мало просто приписать коэффициент 2 к проценту p. Вам запас текущего месяца уже не нужен, он не участвует в расчётах по формулировке задачи. Т.е. нужно перед циклом рассчитать p от первого месяца (октября) и записать в какую-нибудь переменную:

var delta: integer:= Q*p/100;

А в теле цикла просто удваивать её:

NaKonecMes:=NaKonecMes[i-1]-S-delta*2/100;

Вывод на консоль/в файл для Вас, думаю, труда не составит.
👍
0
👎 0
Шикарно, попался на ту же ловушку :) [l] на форуме просто так не введёшь.

1 пункт читайте как: "в теле цикла делается присваивание NaKonecMes[l]:= ..."
👍
0
👎 0
Ну и конечно, во второй задаче delta нужно удваивать отдельно внутри цикла:

delta := delta*2;
NaKonecMes[l]:=NaKonecMes[i-1]-S-delta/100;

В варианте NaKonecMes[l]:=NaKonecMes[i-1]-S-delta*2/100 она же никак не меняется.

Задайте свой вопрос по программированию
профессионалам

Сейчас онлайн 75 репетиторов по программированию
Получите ответ профи быстро и бесплатно

Другие вопросы на эту тему:

👍
0
👎 07

Visual BASIC   7 ответов

Пожалуйста, помогите решить задачу ((
Задание:
Задание для контрольной работы содержит задачу.

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

Причем, программа должны быть записаны в двух вариантах: в первом варианте необходимо использовать оператор условного перехода
IF ...Go To, а во втором — оператор цикла For... To... Step, Next. Для облегчения решения задачи по ней даны Краткие методические…
  17 июн 2013 17:22  
ASK.PROFI.RU © 2020-2021