Calculate the sum of the squares of the numbers belonging to the interval (A, B), standing on the ground, multiples of 4; count the number of zeros in the whole array.

program 17; var c:array[1..20] of real; s,kv4,kr,a,b:real; n,i,nul:integer; begin writeln ('vvedite kol-vo el massiva'); readln (n); writeln ('vvedite promeshutok ot a do b'); readln (a,b); writeln ('vvedite el massiva'); for i:=1 to n do readln (c[i]); s:=0; nul:=0; for i:=1 to n do if (c[i]>a) and (c[i]) then begin end; if 

kv4 square number

kr multiples

nul Zero.

  • In my opinion, your code is not completely copied + by the begin - begin - Vitaly Shebanits
  • Yes. I know. I wrote that this is all I thought of - Pulse
  • one
    Build first the pseudocode (te logic) and then translate this logic into Pascal. For example, you have a c - array with 20 elements inside. It turns out n must be strictly from 1 to 20 otherwise (if the user enters 40) then you will have an exeption , t to c [40] does not exist - Vitaly Shebanits
  • already built logic. Unfortunately she's tight at the shkoloty. And I have been sitting for 3 hours on this task. - Pulse

2 answers 2

 program elements_of_array; var arr: array of real; n: integer; i: integer; a, b: real; sum: real; nulls: integer; begin write('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов массива: '); readln(n); SetLength(arr, n); for i := 0 to n - 1 do begin write(i + 1, ' элСмСнт массива: '); readln(arr[i]); end; writeln('Массив: ', arr); write('ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ (A, B): '); readln(a, b); sum := 0; nulls := 0; for i := 0 to n - 1 do begin if (arr[i] = 0) then begin inc(nulls); continue; end; if (((i + 1) Mod 4 = 0) and (arr[i] > a) and (arr[i] < b)) then sum := sum + arr[i] * arr[i]; end; writeln('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π½ΡƒΠ»Π΅ΠΉ Π² массивС: ', nulls); writeln('Π‘ΡƒΠΌΠΌΠ° элСмСнтов: ', sum); end. 

UPD : implementation of a dynamic array using pointers

 program elements_of_array; const MaxSize = 100; type TArray = array [0..MaxSize] of real; PArray = ^TArray; var arr: PArray; n: integer; i: integer; a, b: real; sum: real; nulls: integer; begin getmem(arr, sizeof(real) * MaxSize); fillchar(arr^, sizeof(real) * MaxSize, #0); write('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов массива: '); readln(n); for i := 0 to n - 1 do begin write(i + 1, ' элСмСнт массива: '); readln(arr^[i]); end; write('ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ (A, B): '); readln(a, b); sum := 0; nulls := 0; for i := 0 to n - 1 do begin if (arr^[i] = 0) then begin inc(nulls); continue; end; if (((i + 1) Mod 4 = 0) and (arr^[i] > a) and (arr^[i] < b)) then sum := sum + arr^[i] * arr^[i]; end; writeln('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π½ΡƒΠ»Π΅ΠΉ Π² массивС: ', nulls); writeln('Π‘ΡƒΠΌΠΌΠ° элСмСнтов: ', sum); end. 
  • setlenght throws and writes an unknown identifier - Pulse
  • This is because there are no dynamic arrays in the turbo-strip; setlength does not apply to arrays - MBo
  • @MaximQwerty updated the answer with Turbo Pascal - slippyk
 Program test; uses crt,math; var c:array of integer; // ОбъявляСм динамичСский массив n,i,a,b,sum_for_null,sum_sqware:integer; begin clrscr; // очистка экрана sum_for_null := 0; // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для подсчСта Π½ΡƒΠ»Π΅ΠΉ sum_sqware := 0; // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для подсчСта ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² writeln('Π’Π΅Π΄ΠΈΡ‚Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° a ΠΈ b '); readln(a,b); // Π’Π²ΠΎΠ΄ΠΈΠΌ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ setlength(c,n); // устанавливаСм Π΄Π»ΠΈΠ½Ρƒ динамичСскому массиву for i:=a to b - 1 do // Ρ…ΠΎΠ΄ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ begin readln(c[i]); // считываСм значСния end; for i:=a to b - 1 do // Ρ…ΠΎΠ΄ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ begin if c[i] = 0 then // Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 0 begin sum_for_null := sum_for_null + 1; // ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счСтчик Π½ΡƒΠ»Π΅ΠΉ Π½Π° 1 end; if (i / 4 = Round(i / 4)) then // Ссли Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€ массива Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° 4 Ρ€Π°Π²Π΅Π½ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π½Π° 4 (Ρ‚ Π΅ ΠΊΡ€Π°Ρ‚Π΅Π½ 4ΠΎΠΌ) begin sum_sqware := sum_sqware + Sqr(c[i]); //ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ сумму Π½Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ элСмСнта end; end; writeln('количСство Π½ΡƒΠ»Π΅ΠΉ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΡƒ = ',sum_for_null); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠ»-Π²ΠΎ Π½ΡƒΠ»Π΅ΠΉ writeln('сумма ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² числС Π½Π° мСстах, ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… 4 = ',sum_sqware); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сумму ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² элСмСнтов, ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… 4-ΠΎΠΌ readln // ΠΏΠ°ΡƒΠ·Π° end. 
  • one
    i / 4 = Round(i / 4) about Mod not heard? - slippyk
  • And why not like that? The speed drops, chtoli? - Vitaliy Shebanits 5:53 pm