Нужна , буду . создайте файл f, компоненты которого являются действительными числами. напишите программу вычисления суммы компонентов файла f и произведения ненулевых компонентов этого файла. язык программирования: pascal
226
277
Ответы на вопрос:
Cvar f: text; k: integer; s, p: longint; i: integer; begin assign(f, 'output.dat'); rewrite(f); writeln('вводите данные, окончание число 7777'); repeat read(k); if k< > 7777 then writeln(f,k) until k=7777; close(f); reset(f); s : = 0; p : = 1; writeln; while not eof(f) do begin readln(f, k); write(k: 4); s : = s + k; if k < > 0 then p : = p * k end; close(f); writeln; writeln('сумма= ', s, ', произведение= ', p) end. вводите данные, окончание число 7777 3 6 -4 6 2 -3 -4 2 6 0 5 -1 7777 3 6 -4 6 2 -3 -4 2 6 0 5 -1 сумма= 18, произведение= 622080
Uses crt; var f: text; i,x,sm,n: integer; pr: longint; begin randomize; clrscr; pr: =1; assign(f,'f.txt'); rewrite(f); writeln('введите число заполнений (например 6, в файле будет шесть натуральных чисел) ? '); readln(n); for i: =1 to n do beginwrite(i,') '); readln(x); writeln(f,x); end; close(f); reset(f); while not eof(f) dobeginread(f,x); sm: =sm+x; if x < > 0 then pr: =pr*x; end; if n < > 0thenbeginwriteln; writeln('сумма всех чисел = ',sm); writeln('произведение всех чисел = ',pr); end else writeln('файл пустой.'); readkey; close(f); end.
1. если числа a,b,c,d вводятся с клавиатуры, то их просто нужно проверить на принадлежность интервалу (1; 30), но не присваивать им 1! 2. циклы while не нужны, они зацикливают программу. 3. так как увеличение значения k и суммы нужно выполнять одновременно, то есть при выполнении условия, то нужно было эти команды заключить в операторные скобки begin end примерный вариант программы: program z; var a,b,c,d,k,s: integer; begin write('a='); readln(a); write('b='); readln(b); write('c='); readln(c); write('d='); readln(d); k: =0; s: =0; if (a> 1) and (a< 30) and (a mod 3=0) then begin k: =k+1; s: =s+a; end; if (b> 1) and (b< 30) and (b mod 3=0) then begin k: =k+1; s: =s+b; end; if (c> 1) and (c< 30) and (c mod 3=0) then begin k: =k+1; s: =s+c; end; if (d> 1) and (d< 30) and (d mod 3=0) then begin k: =k+1; s: =s+d; end; if k=0 then writeln(not solution') else writeln(s/k); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
lunova092127.04.2022 21:49
-
shepa17418.05.2023 09:13
-
heylolitahey16.08.2021 19:27
-
Михаил194606.06.2020 11:35
-
Фадиля29.11.2020 03:46
-
isabaevisa03.04.2021 20:45
-
agentboy21.05.2021 14:25
-
TupouChuBaK05.08.2022 06:16
-
diana1515206.07.2021 08:33
-
ryzhovaelena119.03.2020 12:33
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.