![]() |
#1 (permalink) |
Новичок
Регистрация: 25.03.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() "Составить подпрограмму, формирующую массив из элементов исходного одномерного массива, k-я степень которых больше заданной величины. Используя подпрограмму, сформировать два массива из элементов сходного массива T: квадрат которых больше 10 и куб которых больше 20." |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, прочитайте содержимое данных постов Массив и матрица Массив в VBA Массив |
![]() |
#5 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,777
Записей в дневнике: 71
Сказал(а) спасибо: 163
Поблагодарили 201 раз(а) в 85 сообщениях
Репутация: 75660
|
![]()
Допустим, что массив целочисленный из 10 элементов и заполняется случайными положительными значениями. Решение будет примерно таким:
Код:
program mas; uses crt; const n=10; var t: Array[1..n] of integer; res1: array[1..n] of integer; res2: array[1..n] of integer; i, j, k: integer; procedure generation; begin writeln('Massiv T: '); for i:=1 to n do begin t[i]:=random(15); write(t[i]:5); end; end; procedure quadrat; begin if sqr(t[i])>10 then begin inc(j); res1[j]:=t[i]; end; end; procedure koob; begin if sqr(t[i])*t[i]>20 then begin inc(k); res2[k]:=t[i]; end; end; begin randomize; k:=0; j:=0; generation; Writeln; for i:=1 to n do begin quadrat; koob; end; writeln('Massiv res1: '); for i:=1 to j do write(res1[i]:5); Writeln; writeln('Massiv res2: '); for i:=1 to k do write(res2[i]:5); readln; end.
__________________
Убить всех человеков! |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Ну а ежели непременно надо с общей процедурой, то тогда можно так:
Код:
program mas; uses crt; const n=10; var t: Array[1..n] of integer; res: array[1..n] of integer; i,j: integer; procedure generation; begin writeln('Massiv T: '); for i:=1 to n do begin t[i]:=random(15)+1; write(t[i]:5); end; end; procedure power(kP,MaxP:integer); begin if kP*Ln(1.0*t[i])>Ln(1.0*MaxP) then begin inc(j); res[j]:=t[i]; end; end; begin randomize; j:=0; generation; Writeln; writeln('Massiv res1: '); for i:=1 to n do power(2,10); for i:=1 to j do write(res[i]:5); Writeln; j:=0; writeln('Massiv res2: '); for i:=1 to n do power(3,20); for i:=1 to j do write(res[i]:5); readln; end. |
![]() |
![]() |
![]() |
#7 (permalink) |
Member
Регистрация: 15.02.2009
Сообщений: 695
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 523
|
![]()
Ну, вот и мой вариант
Код:
uses crt; const n=5; type mass=array[1..n]of integer; var i,k:byte; t,r1,r2:mass; ch1,ch2:integer; procedure p1(var t:mass; ch1,ch2:integer); var j,k:byte; begin j:=0;k:=0; write('Введите элементы массива'); for i:=1 to n do readln(t[i]); for i:=1 to n do if t[i]*t[i]>ch1 then begin inc(j);r1[j]:=t[i];inc(k) end; j:=0; for i:=1 to n do if t[i]*t[i]*t[i]>ch2 then begin inc(j);r2[j]:=t[i]; end; writeln; for i:=1 to k do write(r1[i]:5); writeln; for i:=1 to j do write(r2[i]:5); end; BEGIN clrscr; write('Введите числа(в данном примере 1 число - 10, 2 число - 20)'); read(ch1,ch2); p1(t,ch1,ch2); readkey; END. |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|