Консультация № 185731
01.04.2012, 21:18
69.99 руб.
01.04.2012, 23:44
0 6 3
Здравствуйте! У меня возникли сложности с таким вопросом:
Составте программу используя оператор цикла с параметром
Задание: Задана последовательность из n вещественных чисел.
Опредилить количество элементов последовательности,
попадающих в заданный интервал [a, b].
Написать программу на языке Object Pascal.
Выполнить программу в среде программирования Turbo Pascal, Free Pascal или консольном приложении Delphi.
Проверить результаты работы программы.
Исходный код программы сохранить в файл (с расширением .pas).

Обсуждение

давно
Посетитель
7438
7205
01.04.2012, 23:46
общий
Пожалуйста, обратите внимание на вопрос.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Советник
341206
1201
01.04.2012, 23:59
общий
это ответ
Здравствуйте, Посетитель - 383833!
program a;
const n=10; {любое другое}
var a,b:real; i,k:integer; m:array[1..n] of real;
begin
for i:=1 to n do readln(m[i]);
readln(a);
readln(b);
k:=0;
for i:=1 to n do begin if ((m[i]>=a) and (m[i]<=b)) then k:=k+1; end;
writeln(k);
end.
Неизвестный
02.04.2012, 00:22
общий
Адресаты:
Код:
const N=20; {Количество элементов последовательности}
Diapazon=100; {В качестве исходных данных будут случайные числа в диапазоне +-Diapazon}
var i: byte; start, stop, tmp: real; a: array[1..N] of real;
begin
writeln('Введите границы диапазона');
read(start, stop);
if start>stop then
begin
tmp:=start;
start:=stop;
Stop:=tmp
end;
randomize;
writeln('Исходные данные');
for i:=1 to N do
begin
a[i]:=random*Diapazon*2-Diapazon;
write(a[i]:4:2, ' ')
end;
writeln;
Writeln('Границы диапазона: от ', start:4:2,' до ', stop:4:2);
for i:=1 to N do
if (a[i]>start) and (a[i]<stop) then
write(a[i]:4:2, ' ')
end.

Пример ввода/вывода:
Код:
const N=20; {Количество элементов последовательности}
Diapazon=100; {В качестве исходных данных будут случайные числа в диапазоне +-Diapazon}
var i: byte; start, stop, tmp: real; a: array[1..N] of real;
begin
writeln('Введите границы диапазона');
read(start, stop);
if start>stop then
begin
tmp:=start;
start:=stop;
Stop:=tmp
end;
randomize;
writeln('Исходные данные');
for i:=1 to N do
begin
a[i]:=random*Diapazon*2-Diapazon;
write(a[i]:4:2, ' ')
end;
writeln;
Writeln('Границы диапазона: от ', start:4:2,' до ', stop:4:2);
for i:=1 to N do
if (a[i]>start) and (a[i]<stop) then
write(a[i]:4:2, ' ')
end.
Неизвестный
02.04.2012, 00:23
общий
Адресаты:
Исправление примера ввода/вывода:
Код:
Введите границы диапазона
-40 50
Исходные данные
19.86 22.63 -32.60 -33.96 1.46 0.33 -72.40 -65.07 -98.80 92.94 -37.43 -52.36 69.02 77.43 30.70 -13.21 11.58 -72.93 -85.29 34.28
Границы диапазона: от -40.00 до 50.00
19.86 22.63 -32.60 -33.96 1.46 0.33 -37.43 30.70 -13.21 11.58 34.28
давно
Академик
320937
2216
02.04.2012, 09:40
общий
это ответ
Здравствуйте, Посетитель - 383833! Программа выполнена и проверена на PascalABC.Net.
Код:
program numbers;
{ Составьте программу используя оператор цикла с параметром
Задание: Задана последовательность из n вещественных чисел.
Опредилить количество элементов последовательности,
попадающих в заданный интервал [a, b].
Написать программу на языке Object Pascal.
Выполнить программу в среде программирования Turbo Pascal, Free Pascal или консольном приложении Delphi.
Проверить результаты работы программы.
Исходный код программы сохранить в файл (с расширением .pas). }
var
n: integer; { общее количество элементов последовательности }
x: real; { элемент }
i: integer; { счетчик цикла }
a,b: real; { границы интервала }
k: integer; { количество элементов последовательности, попадающих в интервал [a,b] }
begin
write('a=');
readln(a);

write('b=');
readln(b);

write('n=');
readln(n);

k:= 0; { вначале нет элементов в заданном интервале }
for i:= 1 to n do
begin
write('x[',i,']=');
readln(x); { Прочитали очередное число }
if (x>=a) and (x<=b) then { Если оно попадает в интервал }
k:= k+1;
end;
writeln('k=', k);
readln;
end.

Пример выполнения
Код:
a=1
b=2
n=3
x[1]=1.5
x[2]=0.7
x[3]=-5
k=1

Если требуются пояснения, задавайте вопросы в мини-форуме. Удачи!
Неизвестный
02.04.2012, 09:47
общий
02.04.2012, 19:45
это ответ
Здравствуйте, Посетитель - 383833!
Я не использовал массив, потому что Вы его явно не указывали. Написано на Борланде паскаль

uses crt;
var i,n,a,b,kol:integer;
begin

clrscr;
write('Vvedite kol-vo el-tov massiva: ');
read(n);

write('Vvedite nachalo diapozona uchastka: ');
read(a);

write('Vvedite konec diapozona uchastka: ');
read(b);

kol := 0;
for i:=1 to n do
begin
if ((i>=a) and (i<=b)) then kol := kol+1
end;

write('kolichestvo elementov => ');
writeln(kol);

readkey;
end.


Приложение:
uses crt;
var i,n,kol:integer;
a,b,c:real;
begin

clrscr;
write('Vvedite kol-vo el-tov massiva: ');
read(n);

write('Vvedite nachalo diapozona uchastka: ');
read(a);

write('Vvedite konec diapozona uchastka: ');
read(b);

kol := 0;
for i:=1 to n do
begin
write('Enter M[',i,']:=');
readln(c);
if ((c>=a) and (c<=b)) then kol := kol+1
end;

write('kolichestvo elementov => ');
writeln(kol);

readkey;
end.
Форма ответа