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

Откорректировать программу - паскаль. структура программы как у меня. условие: дан одномерный массив, состоящий из вещественных элементов. найти сумму элементов массива, расположенных до последнего положительного элемента. program k; var a: array[1..100] of real; i,n,p,v: integer; s: real; begin assign (input,'input.txt'); assign (output,'output.txt'); reset (input); rewrite (output); readln(n); for i: =1 to n do read (a[i]); i: =1; while (i> =0) and (a[i]< =0) do i: =i-1; if i< 0 then writeln(0) else p: =i; s: =0; for i: =1 to p-1 do s: =s+a[i]; writeln(s: 0: 0); close (input); close (output); end.

👇
Ответ:
en228
en228
21.11.2020
var
a:array[1..100] of real;
i,n,last:integer;
s:real;
input,output:text;

begin
assign (input,'input.txt');
assign (output,'output.txt');
reset (input);
rewrite (output);

readln(n);

for i:=1 to n do begin 
  read(input,a[i]); 
  if (a[i] >= 0) then last:=i;end;

for i:=1 to last-1 dos:=s+a[i]; 

write(output,s:5:3);

close (input);
close (output);
end.
4,6(65 оценок)
Ответ:
vbackarevap09p0h
vbackarevap09p0h
21.11.2020
строку
i:=1;
нужно поменять на
i:=n; (раз уж вы начинаете считать с конца)
а строки
while (i>=0) and (a[i]<=0) do i:=i-1;
if i<0 then writeln(0)
на
while (i>0) and (a[i]<=0) do i:=i-1;
if i=0 then writeln(0) (поскольку нет 0-ого элемента массива, и может выдаваться ошибка)
4,7(81 оценок)
Открыть все ответы
Ответ:
Настя789032131
Настя789032131
21.11.2020
1. Современное решение

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadArrInteger(ReadlnInteger);
  Println(a.Max-a.Min,a.Where(p->p<=30).Count);
end.

2. Школьный вариант в стиле "ТурбоПаскаль 1983г."

var
  n,i,a,k,max,min:integer;
begin
  Readln(n);
  max:=0;
  min:=301;
  k:=0;
  for i:=1 to n do begin
    Read(a);
    if a>max then max:=a;
    if a<min then min:=a;
    if a<=30 then k:=k+1
    end;
  Writeln(max-min,' ',k)
end.
4,7(50 оценок)
Ответ:
olesya8262
olesya8262
21.11.2020

Program N198453627;
uses crt;
var
  n,i:integer;
  max,v:real;
  yes: string;
begin
  writeln('*** alphaues is thinking... ***');
  writeln('***          OK             ***');
  max:=0;
  yes:='NO';
  writeln('Введите количество машин (не больше 30 - у меня мало памяти!)');
  write('N = ');
  readln(n);
  if n>30 then
      writeln('Это слишком много!')
    else
      begin
        writeln('Вводите зарегистрированную скорость каждого автомобиля');
        for i:=1 to n do
          begin
            write(i,'-й автомобиль: ');
            readln (v);
            if v >300 then
                begin
                  writeln ('По-моему, твои приборы плохо отрегулированы - так быстро машины не ездят!');
                  writeln ('Это число не будет учтено');
                end
              else
               if v < 1  then
                begin
                  writeln ('Ты точно умеешь измерять скорость автомобиля? Скорость не может быть меньше 1!');
                  writeln ('Это число не будет учтено');
                end
              else
                begin  
                  if v<30 then yes:='YES';
                  if v>max then max:=v;
                end;
          end;
        writeln();
        writeln('Максимальная зарегистрированная скорость: ',max);
        writeln('Cкорость меньше 30 км/ч? ',yes);
      end;
end.

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