![]() | ![]() ![]() |
1. Створіть програму, що знайде найбільшу кількість цукерок, яку зможе взяти хлопець.
Вхідні дані
Значення N - натуральне число не більше 100 (кількість мішечків з цукерками), вводиться з клавіатури або задається як константа;
значення Ri (i = 1, 2, ..., N) - натуральні числа не більше 1000 (кількість цукерок у кожному мішечку), вводяться з клавіатури або з файлу.
Вихідні дані (виводяться на екран)
Значення W- найбільша кількість цукерок, яку зможе узяти хлопець.
![]() | ![]() ![]() |
Создать программу которая найдет наибольшее колличество конфет которые может взять мальчик.
Входящие данные:
Значение N - натуральное число не более 100 (колличество мешочков с конфетами), вводится с клавиатуры или задается как константа;
Ri(i=1,2,...,N) - натуральные числа не более 1000 (колличество конфет в каждом мешочке) вводится с клавиатуры или из файла.
Исходящие данные:
Значение W - наибольшее колличество конфет, которую сможет взять мальчик.
![]() | ![]() |
program sweet;
var N, i, W, max11, max22, max1, max2: integer;
R: array [1..100] of integer;
begin
repeat
begin
write('write N ');
readln(N);
end;
until (N<100) and (N>0);
for i:=1 to N do
begin
repeat
begin
write ('R',i,' = ');
readln(R[i]);
end;
until (R[i]>0) and (R[i]<1000);
end;
if N = 1 then W:= R[1]
else if N = 2 then W:= R[1] + R[2]
else if N = 3 then W:= R[1] + R[2] + R[3]
else if N = 4 then W:= R[1] + R[2] + R[3] + R[4]
else
begin
if R[1]>R[2] then
begin
max1:= R[1];
max11:=R[2];
end
else
begin
max1:= R[2];
max11:=R[1];
end;
for i:=3 to N do
begin
if R[i] > max1 then
begin
max2:=max1;
max22:=max11;
max1:=R[i];
if i < N then
begin
if R[i+1]>R[i-1] then
max11:=R[i+1]
else
max11:=R[i-1];
end
else
max11:=R[i-1];
end;
end;
W:= max1 + max11 + max2 + max22;
end;
writeln('W = ',w);
end.
![]() | ![]() ![]() |
Короче, поздно уже. Программа работает, но есть недоработки. Пока не знаю как их устранить. Держи то что есть. Пощитает правильно если мешки из наибольшим количеством конфет будут лежать не рядом)нипральнасчитаетчота
![]() | ![]() |
нипральнасчитаетчотайа говорил что нипральна будет. это тип пробный вариант. там есть недочет один. йа пока низная как его устранить. еще подумаю...
![](https://gazenwagen.com/images/smileys/user/eblans/eblan4.gif)
![]() | ![]() ![]() |
йа говорил что нипральна будет. это тип пробный вариант. там есть недочет один. йа пока низная как его устранить. еще подумаю...
![](https://gazenwagen.com/images/smileys/user/eblans/eblan4.gif)
![](https://gazenwagen.com/images/smileys/simply/).gif)
![]() | ![]() ![]() |
окда жду
![](https://gazenwagen.com/images/smileys/simply/).gif)
![](https://gazenwagen.com/images/smileys/simply/).gif)
![]() | ![]() |
![](https://gazenwagen.com/images/smileys/user/faces/dimon.gif)
program sweet;
var N, n1, j, i, W, max11, max22, max1, max2: integer;
R: array [1..100] of integer;
begin
repeat
begin
write('write N ');
readln(N);
end;
until (N<100) and (N>0);
for i:=1 to N do
begin
repeat
begin
write ('R',i,' = ');
readln(R[i]);
end;
until (R[i]>0) and (R[i]<1000);
end;
if N = 1 then W:= R[1]
else if N = 2 then W:= R[1] + R[2]
else if N = 3 then W:= R[1] + R[2] + R[3]
else if N = 4 then W:= R[1] + R[2] + R[3] + R[4]
else
begin
if R[1]>R[2] then
begin
max1:= R[1];
max11:=R[2];
end
else
begin
max1:= R[2];
max11:=R[1];
end;
j:=2;
for i:=3 to N do
begin
if (R[i] > max1) and (i<>j) then
begin
max2:=max1;
max22:=max11;
max1:=R[i];
j:= i+1;
if i < N then
begin
if R[i+1]>R[i-1] then
max11:=R[i+1]
else
max11:=R[i-1];
end
else
max11:=R[i-1];
end;
end;
W:= max1 + max11 + max2 + max22;
end;
writeln('W = ',w);
end.
![]() | ![]() ![]() |
не жди а думай и устраняй недочот, в жизни надо учитса делать самому, и только поле того как научишса что либо делать сам начинай перепоручать
![](https://gazenwagen.com/images/smileys/simply/).gif)
Я учусе, но ололо пыщ пыщ
![]() | ![]() ![]() |
Вроде теперь норм. если че не так, пешы
![](https://gazenwagen.com/images/smileys/user/faces/dimon.gif)
program sweet;
var N, n1, j, i, W, max11, max22, max1, max2: integer;
R: array [1..100] of integer;
begin
repeat
begin
write('write N ');
reaокда сэнкс, черис часик тестану - отпишусе
![]() | ![]() ![]() |
![](https://gazenwagen.com/images/smileys/simply/(.gif)
при N=20 [4 5 6 8 9 7 2 3 5 8 9 4 1 5 2 8 2 9 7 6] должно быть 34, а получаем 31
![]() | ![]() |
Чота опять не правильно
![](https://gazenwagen.com/images/smileys/simply/(.gif)
при N=20 [4 5 6 8 9 7 2 3 5 8 9 4 1 5 2 8 2 9 7 6] должно быть 34, а получаем 31хуле если одни пятерки должно быть 5 !?
Программа должна выдать 20, ибо я считал так:
в одну руку 2 пакета, то есть всего 4 пакета, 2 из них самые большие и еще 2 тех что возле больших (по больше ессесно)
я не учел, что пакеты могут быть одинаковыми, поэтому выдало 10))
![]() | ![]() |
Чота опять не правильно
![](https://gazenwagen.com/images/smileys/simply/(.gif)
при N=20 [4 5 6 8 9 7 2 3 5 8 9 4 1 5 2 8 2 9 7 6] должно быть 34, а получаем 31прост строгий знак сменил на не строгий Гг.
теперь при N=5 [5,5,5,5,5] ответ 20)
program sweet;
var N, n1, j, i, W, max11, max22, max1, max2: integer;
R: array [1..100] of integer;
begin
repeat
begin
write('write N ');
readln(N);
end;
until (N<100) and (N>0);
for i:=1 to N do
begin
repeat
begin
write ('R',i,' = ');
readln(R[i]);
end;
until (R[i]>0) and (R[i]<1000);
end;
if N = 1 then W:= R[1]
else if N = 2 then W:= R[1] + R[2]
else if N = 3 then W:= R[1] + R[2] + R[3]
else if N = 4 then W:= R[1] + R[2] + R[3] + R[4]
else
begin
if R[1]>R[2] then
begin
max1:= R[1];
max11:=R[2];
end
else
begin
max1:= R[2];
max11:=R[1];
end;
j:=2;
for i:=3 to N do
begin
if (R[i] >= max1) and (i<>j) then
begin
max2:=max1;
max22:=max11;
max1:=R[i];
j:= i+1;
if i < N then
begin
if R[i+1]>R[i-1] then
max11:=R[i+1]
else
max11:=R[i-1];
end
else
max11:=R[i-1];
end;
end;
W:= max1 + max11 + max2 + max22;
end;
writeln('W = ',w);
end.
![]() | ![]() |
короче смотри:
программа ищет число которое наибольшее вот попадаецца 8. до этого наибольшим считалось 6. 6 переписываецца во вторую руку, а 8 стает наибольшим. теперь берем соседние пакеты тот что был рядом с 6 идет в другую руку, а вот возле 8 было 5 и 9. ессесна берем 9! но пиздец в том, что 9 больше 8!!! теперь снова попадаюцца числа 8, 9. идет перемена. Но потом попадаецца 9, 7! и тут, блять, получаецца, что 9 больше 8(а 8 считалось наибольшим) и берецца пара 9 и 7. поэтому ответ программа у меня дала 33 вместо 34
![](https://gazenwagen.com/images/smileys/user/emotions/nerv.gif)
![]() | ![]() ![]() |
хуле если одни пятерки должно быть 5 !?
Программа должна выдать 20, ибо я считал так:
в одну руку 2 пакета, то есть всего 4 пакета, 2 из них самые большие и еще 2 тех что возле больших (по больше есдада 20, зачипяталсе я
![]() | ![]() |
![](https://gazenwagen.com/images/smileys/user/faces/bill.gif)
program sweet;
var N, n1, j, i, W, max11, max22, max1, max2: integer;
R: array [1..100] of integer;
begin
repeat
begin
write('write N ');
readln(N);
end;
until (N<100) and (N>0);
for i:=1 to N do
begin
repeat
begin
write ('R',i,' = ');
readln(R[i]);
end;
until (R[i]>0) and (R[i]<1000);
end;
if N = 1 then W:= R[1]
else if N = 2 then W:= R[1] + R[2]
else if N = 3 then W:= R[1] + R[2] + R[3]
else if N = 4 then W:= R[1] + R[2] + R[3] + R[4]
else
begin
if R[1]>R[2] then
begin
max1:= R[1];
max11:=R[2];
end
else
begin
max1:= R[2];
max11:=R[1];
end;
j:=2;
for i:=3 to N do
begin
if ((R[i] > max1)or((R[i] = max1) and ((max11 <= R[i+1]) or (max11 <= R[i-1])))) and (i<>j) then
begin
max2:=max1;
max22:=max11;
max1:=R[i];
j:= i+1;
if i < N then
begin
if R[i+1]>R[i-1] then
begin
if R[i+1]>max1 then
begin
max1:=R[i+1];
max11:=R[i];
end
else
max11:=R[i+1]
end
else
begin
if R[i-1]>max1 then
begin
max1:=R[i-1];
max11:=R[i];
end
else
max11:=R[i-1]
end
end
else
max11:=R[i-1];
end;
end;
W:= max1 + max11 + max2 + max22;
end;
writeln('W = ',w);
end.
![]() | ![]() |
if ((R > max1)or((R = max1) and ((max11 <= R[i+1]) or (max11 <= R[i-1])))) and (i<>j) then
Гг. прям мего отбор!
![](https://gazenwagen.com/images/smileys/user/emotions/zar.gif)
ну и помучился же я...
Но задачка все же крутая! прям на 5+
![](https://gazenwagen.com/images/smileys/user/faces/dimon.gif)
Скачать темуНовые вверху