Регистрация
Войти
Стать экспертом Правила
Информатика

Дан массив А(m), меньше или равно 20. Ввести на печать сумму элементов массива, Если она превосходит число 50, В противном случае вывести в печать исходный массив.
Написать программу , только прошу с интернета не брать, там программы не работают, свою программу я написала, но что-то выдаёт не так, помогите, пожалуйста.

ОТВЕТЫ
Вот самый короткий способ с рандомным массивом, про ввод тут не совсем понятно

//PascalABC.Net 3.1.0.1200
begin
    var a := ArrRandomInteger(ReadInteger(m =), 1, 20);
    var s := a.Sum;
    if s gt; 50 then
        writeln(s)
    else
        Println(a);
end.

вот переделанный ваш код

//PascalABC.Net 3.1.0.1200
Uses crt;
const
    nmax = 20;

var
    A: array[1..nmax] of integer;
    I, m, s: integer;
    Am, kon: text;

begin
    Clrscr;
    Assign(Am, Am.txt);
   
    {раскоментировать для записи массива в файл}
    {Rewrite(Am);
    m := Random(nmax - 5) + 5;
    for i := 1 to m do
        Writeln(Am, Random(20));
    Close(Am);
   
    {считывание данных из файла}
    Reset(Am);
    s := 0;
    m := 0;
    while not eof(Am) do
    begin
        m := m + 1;
        Readln(Am, A[m]);
        s := s + A[m];
    end;
    Close(Am);
   
    Assign(kon, kon.txt);
    Rewrite(kon);
   
    if s gt; 50 then
        Writeln(Сумма элементов массива более 50 и равна: s=, s)
    Else
    begin
        Writeln(Сумма элементов менее 50, вывод исходного массива);
        for i := 1 to m do
        begin
            Writeln(A[, i, ]=, A[i], );
            Writeln(kon, A[, i, ]=, A[i], );
        end;
    end;
   
    Close(kon);
    Readkey;
end.

234
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам