Uses crt; var ksl,ksm:longint; a:array of integer; i,sred,k:integer; f:Text; s:string; BEGIN clrscr; Assign(f,'f1.txt'); Reset(f); //из файла while not eof(f) do begin readln(f,s); ksm:=ksm+length(s); //считаем все символы end; writeln(ksm); Reset(f); for i:=1 to ksm do begin if (s[i]=' ') then ksl:=ksl+1;//считаем все слова end; writeln(ksl); Reset(f); //из файла setlength(a,ksl+1); for i:=1 to ksl do begin read(f,a[i]); end; Close(f); For i:=1 to ksl do begin If (a[i]=0) then a[i]:=a[1]+a[ksl]; // '' все нулевые компоненты значением суммы первой и последней компонент файла'' if (a[i]>0) then begin sred:=sred+a[i]; // ''найти среднее арифметическое положительных компонент'' inc(k); end; if (a[i]<0)then a[i]:=a[i]- ABS( a[1]+a[ksl] ); // ''все отрицательные компоненты уменьшить на значение суммы'' end; Rewrite(f); //в фаил for i:=1 to ksl do begin write(f,a[i],' '); end; Close(f); Writeln(' sred= ',sred/10:0:1); END.
Язык не указан, решение будет приведено на двух языках: наиболее популярном в школах Pascal и, на мой взгляд, незаслуженно считающемся "детским и непрофессиональным" BASIC (в примитивной его версии qBASIC). Как можно будет убедиться, в Бейсике программа получается даже короче и, я бы сказал, даже нагляднее.. Pascal: var x:integer; begin x:=1; Writeln(' x y=4x-5'); while x<30 do begin Writeln(x:2,4*x-5:6); x:=x+3 end end.
Результат выполнения программы: x y=4x-5 1 -1 4 11 7 23 10 35 13 47 16 59 19 71 22 83 25 95 28 107
qBASIC: PRINT " x y=4x-5" FOR x = 1 TO 30 STEP 3 PRINT x, 4 * x - 5 NEXT x END
Результат выполнения программы: x y=4x-5 1 -1 4 11 7 23 10 35 13 47 16 59 19 71 22 83 25 95 28 107
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку