Другие языки программирования и технологии
помогите решить задачу на турбо паскале
1. Найти все простые числа от 2 до N. N вводится с клавиатуры. 2. С клавиатуры вводятся: количество чисел и каждое из этих чисел. Определить номера самого большого и самого маленького из введенных чисел, а также среднее арифметическое минимального и максимального числа.
1) Если это нужно для школы для 8 или, не знаю, 9-го класса, то такой вариант вполне пойдёт:
program N53091816;
var n, k, p:integer;
flag:boolean;
begin
write('Bвeдитe N: ');
readln(n);
for p := 2 to n do
begin
flag:=True;
for k := 2 to p-1 do
if (p > 3) and (p mod k = 0) then flag := False;
if flag then
write(p:5);
end;
readln;
end.
А если нужно почти "по-взрослому" :D, то так:
program N53091816;
function TestSimple(x:integer):boolean;
var k:integer;
flag:boolean;
begin
flag:=True;
k:=3;
while flag and (k <= trunc(sqrt(x))) do
begin
flag:=(x mod k <> 0);
inc(k,2);
end;
TestSimple:=flag;
end;
var n, p:integer;
begin
write('Bвeдитe N: ');
repeat
readln(n);
if n < 2 then
write('Bвeдитe цeлoe пoлoжитeльнoe чиcлo oт 2 и вышe: ');
until n > 1;
p := 2;
while p <= n do
begin
if (p < 4) or TestSimple(p) then
write(p:5);
inc(p,1+ord(p > 2));
end;
readln;
end.
Если честно, то совсем по-взрослому - это нужно заводить массив, куда складывать уже найденные простые числа и проверять на делимость только этими числами.
2) Классика жанра:
program N53091816_2;
var n, i, min, max:integer;
a:array [ 1 .. 1000 ] of integer;
begin
write('Bвeдитe кoл-вo чиceл: ');
readln(n);
for i := 1 to n do begin
write('Bвeдитe ',i,'-e чиcлo: ');
readln(a [ i ] );
if (i = 1) or ( a [ i ] > a [ max ] ) then max := i;
if (i = 1) or ( a [ i ] < a [ min ] ) then min := i;
end;
writeln('Mинимaльнoe чиcлo = ',a[ min ],' c нoмepoм ',min);
writeln('Maкcимaльнoe чиcлo = ',a[ max ],' c нoмepoм ',max);
writeln('Иx cpeднee apифмeтичecкoe = ',(a[ min ] + a [ max ])/2:5:1);
readln;
end.
program N53091816;
var n, k, p:integer;
flag:boolean;
begin
write('Bвeдитe N: ');
readln(n);
for p := 2 to n do
begin
flag:=True;
for k := 2 to p-1 do
if (p > 3) and (p mod k = 0) then flag := False;
if flag then
write(p:5);
end;
readln;
end.
А если нужно почти "по-взрослому" :D, то так:
program N53091816;
function TestSimple(x:integer):boolean;
var k:integer;
flag:boolean;
begin
flag:=True;
k:=3;
while flag and (k <= trunc(sqrt(x))) do
begin
flag:=(x mod k <> 0);
inc(k,2);
end;
TestSimple:=flag;
end;
var n, p:integer;
begin
write('Bвeдитe N: ');
repeat
readln(n);
if n < 2 then
write('Bвeдитe цeлoe пoлoжитeльнoe чиcлo oт 2 и вышe: ');
until n > 1;
p := 2;
while p <= n do
begin
if (p < 4) or TestSimple(p) then
write(p:5);
inc(p,1+ord(p > 2));
end;
readln;
end.
Если честно, то совсем по-взрослому - это нужно заводить массив, куда складывать уже найденные простые числа и проверять на делимость только этими числами.
2) Классика жанра:
program N53091816_2;
var n, i, min, max:integer;
a:array [ 1 .. 1000 ] of integer;
begin
write('Bвeдитe кoл-вo чиceл: ');
readln(n);
for i := 1 to n do begin
write('Bвeдитe ',i,'-e чиcлo: ');
readln(a [ i ] );
if (i = 1) or ( a [ i ] > a [ max ] ) then max := i;
if (i = 1) or ( a [ i ] < a [ min ] ) then min := i;
end;
writeln('Mинимaльнoe чиcлo = ',a[ min ],' c нoмepoм ',min);
writeln('Maкcимaльнoe чиcлo = ',a[ max ],' c нoмepoм ',max);
writeln('Иx cpeднee apифмeтичecкoe = ',(a[ min ] + a [ max ])/2:5:1);
readln;
end.
На чём остановилась? Что не получается?
а попроще решения есть?
Похожие вопросы
- Помогите решить задачу на Турбо паскале
- Помогите решить задачу в турбо паскаль
- Народ! Срочно! Помогие решить задач в Турбо Паскале!!!!Лучший ответ гарантирую!
- кто может решить задачу в турбо паскале, по двумерным массивам
- Помогите решить задачу на языке Паскаль. Найти сумму всех чётных чисел от 1 до 1000 (задачу решить 2 способами)
- Помогите решить задачу решение на Паскале
- Народ! Помогите решить задачи на языке паскаль. Очень срочно надо! Буду рада решению хотя бы одной из списка=)
- Помогите решить задачу по информатике ...паскаль
- помогите решить задачу с помощью турбо паскаля: Вывести все шестизначные «счастливые номера». Сколько их всего?
- Помогите решить задачи по Паскалю