В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Дарья122004
Дарья122004
17.04.2023 01:46 •  Информатика

Составьте блок-схему и программу для целых чисел введенных в клавиатуре суммирующих их до тех пор, пока не будет равен нулю(с программы с++)

Показать ответ
Ответ:
mashenkamini
mashenkamini
15.05.2021 00:05

program we;  

const  

е=0.01;  

ro=0.57;  

ty=280;  

tz=320;  

py=180;  

p_kr=4.695;  

t_kr=190.55;  

n=8;  

m=21;  

type sm=array [1..8] of real;  

const x_i: sm=(0.841,0.023,0.069,0.009,0.019,0.014,0.013,0.012);  

t_i: sm=(190.55,305.43,369.82,425.16,408.13,469.65,460.39,507.35);  

p_i: sm=(46.95,49.76,44.33,38.71,37.19,34.35,34.48,30.72);  

var sa,sb: real; i: integer;  

a_sm, b_sm,ppkr,tpkr: sm;  

p_2,p1,p_sr,p_pr,t_sr,t_pr,pz,dp,t_x,t_pl,g,dt,h,p2,pl,p_x,s,c_r,b,c,a,c_st,f_a,f_b,f_c,z_sr,z,x1,l,sppkr,stpkr: real;  

function fz(x1: real): real;  

begin  

fz: =exp(ln(x1)*3)-sqr(x1)+x1*p_sr*(sqr(sb)*p_sr+sa-sb)-sa*sb*sqr(p_sr);  

end;  

begin  

sa: =0;  

sb: =0;  

sppkr: =0;  

stpkr: =0;  

for i: =1 to 8 do  

begin  

a_sm[i]: =((0.0867*t_i[i])/(p_i[i]*t_sr))*x_i[i];  

b_sm[i]: =((0.4278*sqr(t_i[i])*sqrt(/(p_i[i]*sqr(t_sr)*sqrt(*x_i[i];  

ppkr[i]: =(p_i[i]*x_i[i]);  

tpkr[i]: =(t_i[i]*x_i[i]);  

sa: =sa+a_sm[i];  

sb: =sb+b_sm[i];  

sppkr: =sppkr+ppkr[i];  

stpkr: =stpkr+tpkr[i];  

end;  

l: =0;  

for i: =1 to m do  

begin  

p_2: = py;  

t_sr: =(ty+tz)/2;  

repeat;  

p1: = p_2;  

p_sr: =(p1+p_2)/2;  

p_pr: =p1/sppkr;  

t_pr: =t_sr/stpkr;  

a: =0;  

b: =1;  

repeat  

f_a: =fz(a);  

f_b: =fz(b);  

c: =(a+b)/2;  

f_c: =fz(c);  

if(f_c*f_a)< 0 then b: =c  

else a: =c;  

c_st: =(a+b)/2;  

until (abs(c_st-c)) z_sr: =c;  

s: =0.03415*(ro*l)/(z_sr*t_sr);  

pz: =py*exp(s);  

p_2: = pz*exp(s);  

dp: =pz-p1;  

p_2: =pz;  

until dp l: =l+100;  

writeln ('l=', l, ' p=', p_2, ' z=', z_sr );  

end;  

end.

0,0(0 оценок)
Ответ:
илрлрле
илрлрле
17.05.2021 17:49
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
begin
  var a:=ReadLines('m17.txt').JoinIntoString.ToIntegers;
  a.Println;
  var b:=a.Select((x,i)->Rec(x,i)).Where(x->x.Item1<0)
    .Select(x->x.Item2).ToArray;
  if b.Count<>2 then
    Writeln('Количество отрицательных элементов не равно двум')
  else begin
    a:=SeqFill(b[0],0).Concat(a.Skip(b[0]).Take(b[1]-b[0]+1))
      .Concat(SeqFill(a.Length-b[1]-1,0)).ToArray;
    a.Println
    end
end.

Тестовое решение:
23 14 7 15 0 13 -6 41 18 13 8 42 27 -11 3 19 10
0 0 0 0 0 0 -6 41 18 13 8 42 27 -11 0 0 0

Файл с исходными данными имеет имя m17.txt. Тестовый файл находится во вложении. Разбивка на строки сделана по 5 значений, но может быть совершенно произвольной. Также нет привязки именно к 17 числам, главное - чтобы отрицательных чисел было ровно два, иначе будет выдано сообщение о их неверном количестве.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота