М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
SkyZee
SkyZee
07.03.2021 16:21 •  Информатика

Условие Лавочки в парке устроены следующим образом. Несколько одинаковых кубических гранитных блоков ставятся в ряд, а на них кладется гранитная плита (см. рисунок). Архитектор-модернист решил, что будет интереснее, если у всех лавочек расположение гранитных блоков-ножек будет разным (и не обязательно симметричным). При этом они располагаются так, чтобы плита не падала: для этого достаточно, чтобы и слева, и справа от центра плиты был хотя бы один гранитный блок или его часть (в частности, если центр плиты приходится на середину какого-нибудь блока, то и слева, и справа от центра плиты находится часть блока, и плита не падает).
Формат входных данных
В первой строке входного потока записаны два числа: L – длина лавочки и K – количество гранитных блоков-ножек. Оба числа натуральные и не превышают 10 000.
Во второй строке записано K различных целых неотрицательных чисел, задающих положение каждой ножки. Положение ножки определяется расстоянием от левого края плиты до левого края ножки (ножка – это куб размером 1×1×1). Ножки перечислены слева направо (то есть начиная с ножки с меньшим расстоянием до левого края)
Формат выходных данных
В выходном потоке требуется перечислить ножки, которые грабителям нужно оставить. Для каждой ножки нужно выдать ее положение, как оно задано во входном потоке. Ножки следует перечислять слева направо, как они встречаются во входном потоке.
Код:
Pascal-
Var
cord:array[1..1000] of longint;
blk:array[1..1000] of real;
l,k,i,blr,rr,bll,kk:longint;
cer:real;
Begin
Read(l,k);
for i:=1 to k do
Read(cord[i]);
cer:=l/2;

bll:=cord[1];
blr:=1;
for i:=1 to round(cer) do
begin
if (cord[i]>bll) then
begin
bll:=cord[i];
blr:=i;
end;
end;

kk:=cord[k];
rr:=k;
for i:=k downto round(cer) do
begin
if (cord[i] begin
kk:=cord[i];
rr:=i;
end;
end;
write(blr,' ',rr);
end.
почемуто выдает неверный результат допустим
ввод:
13 4
1 4 8 11
вывод
4 8,а у меня 4 4

👇
Открыть все ответы
Ответ:
Fulfevgen
Fulfevgen
07.03.2021

1) тк не уточнила загружаем из файла, или вводим с клавиатуры, получай с этими двумя функциями. в каталоге с программой должен быть файлик .txt

 

var a,filename:string[255];
chk,i,res:integer;
f1:Text;
begin
res:=0;
chk:=0;
Writeln('1. Input line');
Writeln('2. Load from file');
Readln(chk);
if chk=1 then
begin
  Writeln('Input line: ');
  Readln(a);
  for i:=1 to Length(a) do
    if a[i]='.' then
    res:=res+1;
  Writeln('Result: ',res);
end;
if chk=2 then
begin
  writeln('Input name of file: ');
  Readln(filename);
  filename:=filename+'.txt';
  Assign (f1, filename);
  Reset(f1);
  while not eof (f1) do
    begin
    readln (f1, a);
    writeln(a);
    for i:=1 to Length(a) do
        if a[i]='.' then
        res:=res+1;
    end;
  Writeln('Result: ',res);
  Close (f1);
end;
readln;
end.

 

 

 

 

2) вводим не запятую, а точку, как разделитель частей числа

 

var a,substr:string[100];
x,res,i:integer;
begin
writeln('Input number:');
Readln(a);
substr:='.';
x:=Pos(substr,a);
for i:=1 to x-1 do
  res:=res+strtoint(a[i]);
Writeln('Result of first part: ',res);
res:=0;
for i:=x+1 to Length(a) do
  res:=res+StrToInt(a[i]);
Writeln('Result of second part: ',res);
readln;
end.

4,7(91 оценок)
Ответ:
YtNazarIdline
YtNazarIdline
07.03.2021

Можливі 5 випадків:

1) пряма перетинає дві протилежні сторони і є перпендикулярною до них. Тоді утворюються два

прямокутники;

2) пряма перетинає дві протилежні сторони і НЕ є перпендикулярною до них. Тоді утворюються дві трапеції;

3) пряма перетинає дві суміжні сторони. Тоді утворюються: трикутник і п'ятикутник;

4) пряма проходить через одну вершину прямокутника і одну з протилежних їй сторін. Тоді утворюються: трикутник і трапеція;

5) пряма проходить через дві протилежні вершини прямокутника (діагональ). Тоді утворюються: два трикутники

 

Малюнок причепив

4,8(64 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ