Задача: найти все простые числа, не превышающие заданного. Ниже код. Не могли бы вы проверить нет ли там ошибки. Я не совсем уверен что он работает корректно. Буду благодарен.
Program Lab_4; var i, n, range : integer; Flag : boolean; Begin i := 0; n := 0; write(‘Введите диапазон: ‘); read(range); while i < range do Begin Flag := True; n := 0; i := i + 1; while n < i — 1 do Begin n := n + 1; if ((i mod n = 0) and (n >2)) or ((i mod 2 = 0) and (i <> 2)) then Flag := False; end; if Flag then writeln(i, ‘ — Простое число!’); end; end.
Отслеживать
Pavel Durmanov
задан 13 мар 2017 в 16:18
Pavel Durmanov Pavel Durmanov
5,678 3 3 золотых знака 21 21 серебряный знак 44 44 бронзовых знака
Ну попробуйте поискать числа больше 2^128 и посмотрите.
13 мар 2017 в 16:20
Боюсь, они не влезут в integer.
13 мар 2017 в 16:24
Я уже это заметил(
13 мар 2017 в 16:24
Проверять делимость достаточно до квадратного корня, округлённого вниз.
13 мар 2017 в 16:26
. и только на простые числа.
Не далее как сегодня уже одну программу пришлось писать. Взгляните, может, и поможет — правда, не на Pascal’е писано.
Паскаль с Нуля. Оператор вывода. Урок 1
13 мар 2017 в 16:37
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
Иногда бывает гораздо проще код просто переписать. Тогда повысится его читабельность.
Зачем Вы используете цикл while когда здесь нужен for , я не понял. Ну и как правильно заметили, проверять делимость нужно не до самого числа, а до его квадратного корня.
program Lab_4; var i, n, range : integer; Flag : boolean; begin write(‘Введите диапазон: ‘); read(range); for i := 2 to range do begin Flag := True; for n := 2 to Trunc(Sqrt(i)) do begin Flag := i mod n <> 0; if not Flag then break; end; if Flag then writeln(i, ‘ — Простое число!’); end; end.
Источник: ru.stackoverflow.com
Типовые задачи на Pascal (массивы).
методическая разработка по информатике и икт (9 класс) по теме
Типовые задачи на Pascal (массивы). Качественное пособие, содержащее краткую теорию, задачи с исходниками решения, а также задания для самостоятельной работы по одно- и двумерным массивам.
Скачать:
![]() |
19 КБ |
Предварительный просмотр:
Типовые задачи на Паскале (массивы)
Массив — это упорядоченный набор однотипных элементов, обозначаемых одним именем; доступ к элементу массива осуществляется по его номеру.
Для записи элементов массива в память компьютера нужно выделить для их хранения необходимое количество ячеек памяти, которое определяется размером массива.
Pascal Полный курс с нуля за 4 часа
В программе для каждого массива должны быть указаны его параметры: имя, размерность и размер. Бывают одномерные, двумерные и т.д. массивы. Это называется размерностью.
Одномерные массивы (последовательности).
I — номер элемента, A[I] — элемент массива, стоящий на I-ом месте
- Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].
Var a: array[1..100] of integer;
Write (‘Сколько элементов? ’); Readln (n);
2. Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Var a: array[1..100] of integer;
Write (‘Сколько элементов? ’); Readln (n);
write (‘введите число’); readln (a[i]);
writeln(‘произведение элементов равно: ‘,p);
3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.
Var a: array[1..100] of real;
Write (‘n=’); Readln (n);
write (‘введите число’); readln (a[i]);
writeln(‘сумма элементов равна ‘,s);
4. Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.
Var a: array[1..100] of real;
Write (‘n=’); Readln (n);
write (‘введите число’); readln (a[i]);
writeln(‘среднее арифметическое элементов: ‘,s);
5. Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.
Var a: array[1..100] of real;
Write (‘n=’); Readln (n);
write (‘введите число’); readln (a[i]);
if i mod 2 = 0 then s:=s+a[i];
writeln(‘сумма элементов с четными номерами: ‘,s);
6. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный). Найти произведение элементов с нечетными номерами.
Var a: array[1..100] of integer;
Write (‘Сколько элементов? ’); Readln (n);
if i mod 2 <> 0 then P=P*a[i];
Writeln(‘Произведение элементов с нечетными номерами:’, P);
7. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47] (размер произвольный). Найти произведение элементов с четными номерами, которые превосходят некоторое число t.
Var a: array[1..100] of integer;
i, n, p, t: integer;
Write (‘Сколько элементов? ’); Readln (n);
a[i]:= Random(104)-56; writeln (a[i],’ ‘);
if (i mod 2 = 0) and (a[i]>t) then P=P*a[i];
Writeln(‘Произведение элементов с четными номерами, превосходящие число t:’, P);
8. Найти наименьший элемент одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Var a: array[1..100] of real;
Write (‘n=’); Readln (n);
Writeln(‘наименьшее число: ‘,min);
9. Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.
Var a: array[1..100] of integer;
i, n, num, min: integer;
Write (‘n=’); Readln (n);
Writeln(‘ номер наименьшего элемента: ‘,num);
10. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество нулей.
Var a: array[1..100] of integer;
Write (‘n=’); Readln (n);
if a[i]=0 then k:=k+1;
Writeln(‘количество 0 равно ’, k);
11. В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество четных элементов.
Var a: array[1..100] of integer;
Write (‘n=’); Readln (n);
if a[i] mod 2=0 then k:=k+1;
Writeln(‘количество четных элементов: ’, k);
12. Найдите среднее арифметическое элементов массива, состоящего из 10 чисел, которые превышают по величине число С. Элементы вводятся с клавиатуры.
Var a: array[1..10] of real;
For i:=1 to 10 do
write(‘введите С: ‘); readln (C );
For i:=1 to 10 do
begin S=S+a[i]; K=K+1; end;
Writeln(‘среднее арифметическое чисел, превосходящих ‘,C,’ равно ‘,sred);
13. Найти произведение элементов целочисленного одномерного массива с четными номерами, состоящего из n элементов. Элементы вводятся с клавиатуры.
Var a: array [1..100] of integer;
write (‘n=’); readln (n);
if i mod 2=0 then p:=p*a[i];
Writeln (‘произведение элементов массива с четными номерами равно ‘,p);
14. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива А. Элементы вводятся с клавиатуры. Размер n.
Var a: array[1..100] of integer;
b: array[1..100] of integer;
write (‘n=’); readln (n);
if a[i] mod 2=0 then
if kol=0 then writeln(‘четных элементов нет’) else
for k:=1 to kol do write(‘b[‘,k,’]=’,b[k]);
Задачи для самостоятельной работы
- Массив А вводится с клавиатуры. Найти сумму его элементов. Размер произвольный.
- Найти произведение элементов, кратных 3 в массиве, заданном датчиком случайных чисел на интервале [-28, 27]. Размер произвольный.
- Массив А вводится с клавиатуры. Найти среднее арифметическое его элементов с нечетными номерами. Размер произвольный.
- Массив А вводится с клавиатуры. Найти сумму его элементов с четными номерами, произведение отрицательных элементов, количество нечетных элементов. Размер произвольный.
- Найти наибольший элемент и его номер в последовательности, элементы которой вводятся с клавиатуры. Размер произвольный.
- Найти средне арифметическое элементов последовательности, превосходящих некоторое число С. Массив задан датчиком случайных чисел на интервале [-44, 35]. Размер произвольный. Значение С вводится с экрана.
- Массив А вводится с клавиатуры. Вывести только нечетные элементы. Размер произвольный.
- Упорядочить данную последовательность по убыванию. Элементы вводятся с клавиатуры. Размер произвольный.
- Упорядочить данную последовательность по убыванию. Массив задан датчиком случайных чисел на интервале [-54, 33]. Размер произвольный.
- Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А. Размер произвольный.
- Массив задан датчиком случайных чисел на интервале [-31, 45]. Сформировать новый массив В, состоящий из нечетных элементов массива А. Размер произвольный.
- Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из положительных элементов массива А и найти в нем наибольший элемент. Размер произвольный.
- Массив задан датчиком случайных чисел на интервале [-37, 66]. Найти наименьший нечетный элемент. Размер произвольный.
Двумерные массивы (матрицы)
1. Сформировать с помощью датчика случайных чисел и вывести на экран матрицу, размером МхN. Элементы задаются на интервале [-20, 25].
Var a: array[1..50,1..50] of integer;
i, j, n, m: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
2. В двумерном массиве, состоящем из n целых чисел, найти сумму элементов в каждой строке. Размер произвольный.
Var a: array[1..50,1..50] of integer;
i, j, n, m,S: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
Writeln(‘сумма элементов в ‘,i,’ строке равна ‘,S);
3. Найти наименьший элемент двумерного массива. Размер MXN. Элементы задаются на интервале [-30, 45].
Var a: array[1..50,1..50] of integer;
i, j, n, m, min: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
Writeln(‘наименьшее число ‘,min);
4. В двумерном массиве, состоящем из целых чисел, найти наименьший элемент и номер строки, в которой он находится. Элементы вводятся с клавиатуры. Размер MXN.
Var a: array[1..50,1..50] of integer;
i, j, m, n, min, K: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
begin write(‘a[‘,i,’,’,j,’]=’); readln (a[i,j]); end;
Writeln(‘наименьшее число ‘,min,’ находится в ‘, k , ‘ строке’);
5. Найти сумму элементов в каждой строке двумерного массива, состоящего из целых чисел. Размер MXN. Элементы задаются на интервале [-19, 30].
Var a: array[1..50,1..50] of integer;
i, j, n, m,sum: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
for j:=1 to n do sum:=sum+a[i,j];
writeln(‘сумма элементов в ‘,i,’ строке: ‘,sum);
6. Подсчитать количество положительных элементов в каждой строке матрицы размером МхN, элементы которой вводятся с клавиатуры.
Var a: array[1..50,1..50] of integer;
i, j, m, n, kol: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
begin write(‘a[‘,i,’,’,j,’]=’); readln (a[i,j]); end;
for j:=1 to n do if a[i,j]>0 then kol:=kol+1;
writeln(‘количество положительных элементов в ‘,i,’ строке: ‘,kol);
7. Сформировать матрицу типа 1 0 0 0
Var a: array[1..50,1..50] of integer;
i, j, m, n: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
if i=j then a[i,j]:=1 else a[i,j]:=0;
8. Найти номер столбца массива размером МхN, в котором находится наибольшее количество отрицательных элементов. Элементы вводятся с клавиатуры.
Var a: array[1..50,1..50] of integer;
b: array[1..50] of integer;
i, j, m, n, max, jmax: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
writeln(‘Наибольшее количество отрицательных элементов в ‘;jmax ; ‘столбце’);
9. Упорядочить каждый столбец матрицы по возрастанию. Массив размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-17;26].
Var a: array[1..50,1..50] of integer;
i, j, n, m,t,r: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
For i:=1 to m-1 do
if a[i,j]> a[i+1,j] then
For j:=1 to n do write(a[i,j],’ ‘);
10. Сформировать матрицу 1 1 1 1
Var a: array[1..3,1..4] of integer;
11. Найти наибольшее нечетное число в матрице размером МхN, элементы которой задаются датчиком случайных чисел на интервале [-27, 38].
Var a: array[1..50,1..50] of integer;
b: array[1..50] of integer;
i, j, n, m, p, max, k: integer;
Write(‘сколько строк?’); Readln(m);
Write(‘сколько столбцов?’); Readln(n);
If a[i;j]mod 2 <> 0 then
if k=0 then writeln(‘нечетных элементов нет’) else
if b[p]>max then max:=b[p];
writeln(‘наибольшее нечетное число’, max);
Задачи для самостоятельной работы
- Подсчитать количество положительных элементов в каждом столбце матрицы размером МхN, элементы которой вводятся с клавиатуры.
- Подсчитать количество отрицательных элементов в каждой строке матрицы размером МхN, элементы которой задаются с помощью датчика случайных чисел на интервале [-35; 65].
- Подсчитать количество четных элементов в каждом столбце матрицы размером МхN, элементы которой задаются с помощью датчика случайных чисел на интервале [-98; 54].
- Подсчитать количество четных отрицательных элементов в матрице размером МхN, элементы которой вводятся с клавиатуры.
5. Сформировать матрицу 1 1 1 1
6. Сформировать матрицу 1 2 3 4
7. Сформировать матрицу 0 0 0 1
8. Найти номер наибольшего элемента массива размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-67;23].
9. Найти номер наибольшего элемента массива размером МхN, элементы которого вводятся с клавиатуры.
10. Найти наибольший элемент массива размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-25;19].
11. Найти наименьший элемент массива размером МхN, элементы которого вводятся с клавиатуры.
12. Найти сумму элементов в каждом столбце массива размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-19;20].
13. Найти произведение элементов в каждом столбце массива размером МхN, элементы которого вводятся с клавиатуры.
14. Найти произведение элементов в каждой строке массива размером МхN, элементы которого вводятся с клавиатуры.
15. Найти произведение диагональных элементов массива размером МхN, элементы которого вводятся с клавиатуры.
16. Найти сумму элементов, стоящих на побочной диагонали массива размером МхN, элементы которого вводятся с клавиатуры.
17. Найти номер столбца массива размером МхN, в котором находится наименьшее количество положительных элементов. Элементы вводятся с клавиатуры.
18. Найти номер строки массива размером МхN, в котором находится наименьшее количество положительных элементов. Элементы вводятся с клавиатуры.
19. Найти номер строки массива размером МхN, в котором находится наибольшее количество четных элементов. Элементы задаются датчиком случайных чисел на интервале [-54;61].
20. Найти номер столбца массива размером МхN, в котором находится наибольшее количество элементов, кратных 5. Элементы задаются датчиком случайных чисел на интервале [-27;43].
21. Найти наименьшее четное число в матрице размером МхN, элементы которой задаются датчиком случайных чисел на интервале [-65, 45].
22. Найти наибольшее число, кратное 3, в матрице размером МхN, элементы которой вводятся с клавиатуры.
Источник: nsportal.ru
Простейшие задачи по программированию
Простые задачи по программированию полезны, в основном, новичкам, которые изучают свой первый язык программирования.
Более-менее опытным программистам они, конечно, не интересны. Однако начинающим можно и очень даже нужно решать такие задачи. Хотя бы на начальном этапе.
Это как гаммы для музыканта — скучно и нудно, но надо. Потому что только так можно отточить до автоматизма навыки создания программ.
Задача 0.0. Как переставить столбцы в массиве
Составьте программу циклической перестановки столбцов двумерного массива К, при которой первый столбец становиться последним, а i-й столбец становится i-1-м (сдвиг столбцов массива влево на 1). Решение.
Задача 0.1. Двоичное число в виде строки
Преобразовать десятичное число в двоичное и вывести на экран в виде строки, не используя для преобразования стандартные функции. То есть создать собственный аналог функции BinStr в FreePascal. Решение.
Задача 0.2. Генератор наборов символов
Написать программу, которая генерирует (создаёт) N наборов символов (слов). Решение.
Задача 0.3. Использование модулей и заголовочных файлов
Создать модуль (подключаемый файл) с функциями из задачи 0.2. Использовать этот модуль в простой программе, которая генерирует одно слово (набор символов). Решение.
Задача 0.4. Найти количество нулей во всех числах последовательности
Дана последовательность чисел, заданная пользователем. Найти количество нулей во всех числах последовательности. Решение.
Задача 1.1. Натуральное или действительное?
Дано число Х. Если оно натуральное, то вывести на экран сообщение: “Х — натуральное число”, иначе — вывести сообщение “Х — действительное число”. Решение.
Задача 1.2. Разность по модулю и произведение двух чисел.
Даны два целых числа Х и Т. Если они имеют разные знаки, то присвоить Х значение произведения этих чисел, а Т — значение их разности по модулю. Если числа имеют одинаковые знаки, то присвоить Х значение разности по модулю исходных чисел, а Т — значение произведения этих чисел. Новые значения Х и Т вывести на экран. Решение.
Задача 1.5. Сколько должен заплатить каждый пассажир.
В такси одновременно сели три пассажира. Когда вышел первый пассажир, на счётчике было Р1 рублей; когда вышел второй — Р2 рублей. Сколько должен заплатить каждый пассажир, если по окончании поездки счётчик показал Р3 рублей и если плата за посадку составляет Р0 рублей. Считаем, что за совместную поездку пассажиры платят поровну (то есть если все три доехали до конца, то каждый заплатит (Р0 + Р3)/3 рублей). Решение.
Задача 1.6. Сколько лет необходимо для накопления суммы.
Предприниматель, имея начальный капитал k рублей, занялся торговлей, которая ежемесячно увеличивает капитал на р процентов. Сколько лет необходимо для накопления суммы s, достаточной для покупки собственного магазина. Решение.
Задача 1.7. Задача селекционера.
Задачка по программированию. Селекционер вывел новый сорт зерновой культуры и снял с опытного поля k килограмм семян. Посеяв 1 кг семян, можно за сезон собрать р килограмм семян. Через сколько лет селекционер сможет засеять новой культурой поле площадью s гектар, если норма высева n кг/га. Решение.
Задача 1.9. Найти максимальное отрицательное число.
Даны три целых числа А, В, С. Вывести на экран максимальное отрицательное число. Решение.
Задача 2.4. Программа вычисления суммы.
Написать программу для вычисления суммы по формуле:
S = (1*2) / (3*4) + (3*4) / (5*6) + … + (85*86) / (87*88) Решение.
Задача 2.15. Даны натуральные числа от 1 до 33.
Даны натуральные числа от 1 до 33. Вывести на экран эти числа, кроме тех, которые делятся на три или оканчиваются на три. Решение.
Задача 2.16. Найти сумму делителей натурального числа.
Дано натуральное число N. Вывести на экран сумму его делителей. Число 1 считается делителем любого натурального числа. Число N не является делителем числа N. Решение.
Задача 2.18. Вывести на экран все натуральные числа А, В, С.
Вывести на экран все натуральные числа А, В, С, удовлетворяющие уравнению А 2 + В 2 = С 2 , условию А < B, и меньшие 20. Решение.
Задача 2.23. Является ли число числом Фибоначчи.
Дано натуральное число Х. Если оно является числом Фибоначчи, то присвоить переменной Т значение 1, иначе — значение 0. Вывести на экран значение Т. Решение.
Задача 2.24. Наибольший общий делитель.
Даны два натуральных числа X и Y. Найдите наибольший общий делитель этих чисел и выведите на экран значение наибольшего общего делителя. Решение.
Задача 2.25. Как заменить цифру в числе.
Дано натуральное число X. Заменить в нём все цифры 3 на цифру 5. Вывести на экран изменённое число или сообщение НЕТ, если изменений не было. Решение.
Задача 2.26. Преобразование десятичного числа в шестнадцатеричное.
Дано натуральное число X в десятичной системе счисления. Перевести его в шестнадцатеричную систему счисления. Результат вывести на экран. Решение.
Задача 2.30. Как определить простое число.
Дан одномерный массив А, состоящий из натуральных чисел. Вывести на экран количество простых чисел в массиве. Решение.
Задача 2.49. Найти наименьший элемент массива.
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран числа массива, а также найти и вывести на экран наименьшее значение для всех элементов массива. Также вывести номер (индекс) наименьшего элемента в массиве. Решение.
Задача 2.74. Найти количество четных чисел в массиве.
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран количество чётных чисел, расположенных от начала массива до положения первого наибольшего элемента. Решение.
Задача 2.98. Разность между максимальным элементом и средним арифметическим значением.
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран разность между наибольшим элементом и средним арифметическим значением для отрицательных элементов. Если отрицательных элементов нет, то вывести на экран сообщение НЕТ. Решение.
Задача 2.99. Как найти количество уникальных элементов в массиве.
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран количество уникальных элементов в массиве. Решение.
Задача 2.145. Найти количество нулей в двоичном числе.
Дан массив А, состоящий из N натуральных чисел. Вывести на экран количество чисел, которые в двоичном представлении содержат два нуля. Решение.
Задача 5.2. Найти в строке слова на букву А.
Дана последовательность символов, состоящая из слов. Удалить из текста все слова, начинающиеся на букву А (независимо от регистра). Вывести на экран исправленную строку. Если в тексте нет слов с указанным свойством, то вывести на экран сообщение НЕТ. Решение.
Задача 6.1.2.4. Произведение цифр числа.
Найти произведение цифр заданного четырехзначного числа. Решение.
Задача 6.1.2.23. Найдите сопротивление параллельного соединения.
Три сопротивления R1, R2, R3 соединены параллельно. Найдите сопротивление соединения. Решение.
Задача 6.1.2.29. Как определить порядковый номер символа.
Ввести любой символ и определить его порядковый номер, а также указать предыдущий и последующий символы. Решение.
Задача 6.1.2.30. Как преобразовать байт в килобайт.
Дана величина А, выражающая объём информации в байтах. Перевести А в более крупные единицы измерения информации. Решение.
Задача 6.1.2.32. Как преобразовать секунды в часы-минуты-секунды.
Дано натуральное число Т, которое представляет длительность прошедшего времени в секундах. Вывести данное значение длительности в часах, минутах и секундах в следующей форме: ЧЧ:ММ:СС, где ЧЧ — это часы, ММ — минуты, СС — секунды. Решение.
Источник: info-master.su