Задачи для программы pascal

Массив — это упорядоченный набор однотипных элементов, обозначаемых одним именем; доступ к элементу массива осуществляется по его номеру.

Для записи элементов массива в память компьютера нужно выделить для их хранения необходимое количество ячеек памяти, которое определяется размером массива.

В программе для каждого массива должны быть указаны его параметры: имя, размерность и размер. Бывают одномерные, двумерные и т.д. массивы. Это называется размерностью.

Одномерные массивы (последовательности).

I — номер элемента, A[I] — элемент массива, стоящий на I-ом месте

  1. Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].

Источник: studfile.net

Pascal ABC задачи с решением

Сгенерировать случайное число, вывести на экран это число, а также сумму и произведение его цифр.

Олимпиадная задача по информатике | Pascal #1

Алгоритм решения задачи:

  • random(900) генерирует случайное число от 0 до 899. Если прибавить к нему 100, то получится диапазон от 100 до 999 включительно, т. е. охватывает все трехзначные числа.
  • Чтобы извлечь из числа цифру сотен надо его разделить нацело на 100.
  • Для получения цифры десяток можно сначала разделить нацело на 10, а затем найти остаток от деления на 10.
  • Единицы извлекаются путем нахождения остатка от деления числа на 10.

Программа на языке Паскаль:

var n: integer ; a,b,c: byte ; begin randomize; n := random(900) + 100; writeln(n); a := n div 100; b := n div 10 mod 10; c := n mod 10; writeln(‘Сумма: ‘,a+b+c); writeln(‘Произведение: ‘,a*b*c); end .

Пример выполнения программы:

536 Сумма: 14 Произведение: 90

Задача 2:

Сгенерировать случайные целое число, вещественное число, букву в диапазонах, которые вводит пользователь.

Описание переменных:

  • min_i, max_i — минимальная и максимальная границы диапазона для целого числа;
  • n_i — случайное целое число;
  • min_f, max_f — минимальная и максимальная границы диапазона для вещественного числа;
  • n_f — случайное вещественное число;
  • first_c, last_c — первый и последний символ диапазона, в котором должен быть сгенерирован случайный символ;
  • min_c, max_c — коды-числа, соответствующие указанным символам;
  • n_c — случайное число, которое будет переведено в символ по таблице ASCII.

Программа на языке Паскаль:

var min_i, max_i, n_i: integer ; min_f, max_f, n_f: real ; first_c, last_c: char ; min_c, max_c, n_c: byte ; begin randomize; write(‘Minimum integer: ‘); readln(min_i); write(‘Maximum integer: ‘); readln(max_i); n_i := random(max_i-min_i+1) + min_i; writeln(n_i); write(‘Minimum float: ‘); readln(min_f); write(‘Maximum float: ‘); readln(max_f); n_f := random() * (max_f-min_f) + min_f; writeln(n_f:5:2); write(‘First char: ‘); readln(first_c); write(‘Last char: ‘); readln(last_c); min_c := ord(first_c); max_c := ord(last_c); n_c := random(max_c-min_c+1) + min_c; writeln(chr(n_c)); end .

Программирование Pascal с нуля | Информатика ОГЭ 2022 | Умскул

Пример выполнения программы:

Minimum integer : -100 Maximum integer : 100 -46 Minimum float: 0.23 Maximum float: 0.85 0.53 First char : k Last char : q p

Задача 3:

Найти позицию в алфавите двух английских букв и количество символов между ними.

Определить букву по ее позиции в алфавите.

Алгоритм решения задачи:

Позиция буквы в алфавите определяется ее «смещением» относительно первой буквы алфавита. Если знать коды первой буквы и искомой, то разность их кодов покажет, на сколько позиций они отстоят друг от друга. В языке программирования Pascal код-номер буквы по таблице кодов символов ASCII определяется с помощью функции ord(), которой в качестве значения передается символ.

Читайте также:
Как видеть сквозь одежду программа

Для обратного действия — определения буквы по ее известной позиции в алфавите — надо к позиции буквы прибавить код первой буквы алфавита. После этого получить искомую букву по ее коду. Это делается с помощью функции chr(), которой передается число-код символа по таблице ASCII.

Программа на языке Паскаль:

var a,b: char ; an, bn, n: byte ; begin write(‘Буква 1: ‘); readln(a); write(‘Буква 2: ‘); readln(b); an := ord(a); bn := ord(b); writeln(‘Позиция 1: ‘, an-ord(‘a’)+1); writeln(‘Позиция 2: ‘, bn-ord(‘a’)+1); n := abs(bn-an)-1; writeln(‘Количество букв между ними: ‘, n); writeln; write(‘Позиция буквы в алфвите: ‘); readln(n); n := n+ord(‘a’)-1; writeln(‘Это буква — ‘, chr(n)); end .

Пример выполнения программы:

Буква 1: w Буква 2: z Позиция 1: 23 Позиция 2: 26 Количество букв между ними: 2 Позиция буквы в алфвите: 10 Это буква — j

Задача 4:

По координатам двух точек, которые вводит пользователь, определить уравнение прямой, проходящей через эти точки.

Алгоритм решения задачи:

Общий вид уравнения прямой имеет вид y = kx + b. Чтобы найти уравнение для конкретной прямой, необходимо вычислить коэффициенты k и b. Сделать это можно, если известны координаты двух точек, лежащих на этой прямой. В этом случае решается система уравнений:

Программа на языке Паскаль:

var x1,y1,x2,y2: real ; k, b: real ; begin write(‘A(x1;y1): ‘); readln(x1, y1); write(‘B(x2;y2): ‘); readln(x2, y2); k := (y1 — y2) / (x1 — x2); b := y2 — k * x2; writeln(‘y = ‘,k:0:2,’x + ‘,b:0:2); end .

Примеры выполнения программы:

A(x1;y1): 6 9 B(x2;y2): -1 3 y = 0.86x + 3.86

A(x1;y1): 1.2 5.6 B(x2;y2): -3.45 8.2 y = -0.56x + 6.27

Источник: sites.google.com

Решение типичных задач на языке Pascal Геометрические задачи

Единственный в мире Музей Смайликов

Самая яркая достопримечательность Крыма

Скачать 71.5 Kb.

Решение типичных задач на языке Pascal

Геометрические задачи

Задача 1
Дан круг (X0, Y0, R) и точка (X, Y), где X0, Y0, R, X, Y — вещественные числа.
Определить, лежит ли эта точка внутри данного круга.

Пример
(0, 0, 1) и (0.5, 0.5)
Результат: TRUE

ReadLn (X0, Y0, R, X, Y);

WriteLn (Sqr (X — X0) + Sqr (Y — Y0)

Задача 2
Дан треугольник с вершинами (X1, Y1); (X2, Y2); (X3, Y3) и точка (X, Y). Все Xi, Yi — вещественные числа.
Определить, лежит ли эта точка внутри данного треугольника.

Пример
(0, 0); (3, 0); (0, 3) и (1, 1)
Результат: TRUE

var X1, Y1, X2, Y2, X3, Y3, X, Y: Real;

S0, S1, S2, S3: Real;
function S (X1, Y1, X2, Y2, X3, Y3: Real): Real;

var a, b, c, p: Real;

a := Sqrt (Sqr (X1 — X2) + Sqr (Y1 — Y2));

b := Sqrt (Sqr (X1 — X3) + Sqr (Y1 — Y3));

c := Sqrt (Sqr (X3 — X2) + Sqr (Y3 — Y2));

S := Sqrt (p * (p — a) * (p — b) * (p — c));

ReadLn (X1, Y1, X2, Y2, X3, Y3, X, Y);

S0 := S (X1, Y1, X2, Y2, X3, Y3);

Читайте также:
Конкурсная игровая программа кто знает больше разных слов

S1 := S (X, Y, X2, Y2, X3, Y3);

S2 := S (X1, Y1, X, Y, X3, Y3);

S3 := S (X1, Y1, X2, Y2, X, Y);

WriteLn (S0 + eps >= S1 + S2 + S3);

Задача 3
Дан прямоугольник, заданный двумя противоположными вершинами (X1, Y1); (X2, Y2) и точка (X, Y). Все Xi, Yi — вещественные числа.
Определить, лежит ли эта точка внутри данного прямоугольника.

Пример
(1, 1); (7, 4) и (4, 2)
Результат: TRUE

ReadLn (X1, Y1, X2, Y2, X, Y);

WriteLn ((Abs (X1 — X2) = Abs (X1 — X) + Abs (X2 — X)) and

(Abs (Y1 — Y2) = Abs (Y1 — Y) + Abs (Y2 — Y)));

Задачи на числа

Задача 1
Дано число a (0..999999999).
Найти сумму цифер числа a.

Пример
a = 12345
Результат: 15

Задача 2
Дано число a (0..999999999).
Вывести это число в обратном порядке.

Пример
a = 12345
Результат: 54321

Задача 3
Дано число a (0..999999999).
Определить, является ли оно простым.
Замечание: число называется простым, елси оно делится только на 1 и на самого себя.

Пример
a = 12345
Результат: FALSE

for N := 2 to a div 2 do

if a mod N = 0 then

Задача 4
Дано число a (0..999999999).
Разложить это число на простые множители.

Пример
a = 12345
Результат: 3 5 823

for N := 2 to X div 2 do

if X mod N = 0 then

if Prost (a) then

Задача 5
Дано число S (0..999999999), обозначающее количество секунд.
Вычислить числа Hour, Minute (0..59), Second (0..59), показывающие число часов, минут и секунд соответственно в числе S.

Пример
S = 12345
Результат: 3:25.45

Hour, Minute, Second: Integer;
begin

Second := S mod 60;

Minute := S div 60;

Hour := Minute div 60;

Minute := Minute mod 60;

WriteLn (Hour, ‘:’, Minute, ‘.’, Second);

Задача 6
Дано натуральное число a (1..999999999).
Представить его в виде суммы квадратов двух натуральных чисел или сообщить о невозможности такого представления.

Пример
a = 29
Результат: 2, 5

for n := 1 to Trunc (Sqrt (a)) do

b := Sqrt (a — Sqr (n));

if (Int (b) = b) and (b > 0) then

WriteLn (n, ‘, ‘, Trunc (b));

Задача 7
Дано число a (1..999999999).
Определить, является ли оно совершенным.
Замечание: натуральное число называется совершенным, если оно равно сумме всех своих собственных делителей, включая 1.

Пример
a = 496
Результат: TRUE

for i := 2 to a div 2 do

if a mod i = 0 then Inc (S, i);

Задача 8
Даны два натуральных числа: m, n (1..999999999), образующие дробь вида m / n.
Сократить дробь, что бы числитель и знаменатель были взаимнопростые.

Пример
m = 256; n = 64
Результат: 4 1

Задачи на строки

Задача 1
Дана строка S, состоящая из латинских букв и пунктуационных знаков.
Преобразовать эту строку к верхнему регистру.

Пример
S = ‘Hello, World!’
Результат: HELLO, WORLD!

for i := 1 to Length (S) do

Задача 2
Дана строка S, состоящая из латинских букв и пробелов.
Определить количество слов в данной строке.
Замечание: словом считается любая последовательность максимальной долины, состоящая из латинских букв и не содержащая пробелов.

Пример
S = ‘Hello World’
Результат: 2

i, Count, State: Integer;
begin

for i := 1 to Length (S) do

1: if UpCase (S[I]) in [‘A’..’Z’] then

2: if not (UpCase (S[I]) in [‘A’..’Z’]) then State := 1;

Задача 3
Дано 10 строк, вводимых с клавиатуры.
Вывести их в алфавитном порядке.

Пример
Marina
Aleksej
Sergej
Ivan
Peter
Lubov
Irina
Pavel
Natasha
Kostya

Читайте также:
Создайте программу которая подсчитывает количество введенного символа во введенной строке

i: Integer;
procedure Sort (var S: TStrs);

var i, j: Integer;

for i := 1 to N — 1 do

for j := i + 1 to N do

for i := 1 to N do

for i := 1 to N do

Задача 4
Дана строка S.
Определить, является ли она полиндромом.
Замечание: полиндромом называются строки, которые одинаково читаются как слева-направо, так и справа-налево.

Пример
S = ‘asdfgfdsa’
Результат: TRUE

for i := 1 to Length (S) div 2 do

if S[i] <> S[Length(S)-i+1] then

Задача 5
Дана строка S, состоящая только из символов ‘0’ или ‘1’.
Подсчитать длинну самой длинной последовательности, состоящей только из ‘1’.

Пример
S = ‘111110011110110’
Результат: 5

i, Len, MaxLen: Integer;
begin

for i := 1 to Length (S) do

if Len > MaxLen then MaxLen := Len;

end else Inc (Len);

Задачи на массивы

Задача 1
Дан массив A, состоящий из 100 натуральных чисел, заполненный случайным образом (каждый элемент находится в промежутка от 1 до 1000).
Отсортировать данный массив по неубыванию и вывести на экран.

i, j, tmp: Integer;
begin

for i := 1 to n do

A[i] := Random (1000) + 1;

for i := 1 to n — 1 do

for j := n downto 2 do

Задача 2
Дан массив A, состоящий из 10 целых чисел.
Вывести все элементы, значение которых превосходит среднего арифметического элементов массива.

Пример
A: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Результат: 6, 7, 8, 9, 10

i, Sum: Integer;
begin

for i := 1 to n do

for i := 1 to n do

if A[i] > Sum div n then WriteLn (A[i]);

Задачи на матрицы

Задача 1
Дана матрица A размерностью 3 x 3, состоящая из целых чисел.
Найти разность между максимальным и минимальным элементами данной матрицы.

Пример
A:
12 44 37
8 25 32
19 28 41
Результат: 36

i, j, Max, Min: Integer;
begin

for i := 1 to 3 do

for j := 1 to 3 do

for i := 1 to 3 do

for j := 1 to 3 do

if Max A[i,j] then Min := A[i,j];

WriteLn (Max — Min);

Задача 2
Дана матрица A размерностью 5 x 5.
Заполнить ее следующим образом:
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
и вывести на экран.

i, j: Integer;
begin

for i := 1 to 5 do

for j := 1 to 5 do

A[i,j] := 1 + (i + j — 2) mod 5;

for i := 1 to 5 do

for j := 1 to 5 do

Задача 3
Дана матрица A размерностью 5 x 5.
Заполнить ее следующим образом:
1 1 1 1 1
0 1 1 1 0
0 0 1 0 0
0 1 1 1 0
1 1 1 1 1
и вывести на экран.

i, j: Integer;
begin

for i := 1 to 5 do

for j := 1 to 5 do

Задача 4
Дана матрица A размерностью 5 x 5.
Заполнить ее следующим образом:
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
и вывести на экран.

i, j: Integer;
begin

for i := 1 to 5 do

for j := 1 to 5 do

if Odd (i) then A[i,j] := j + (i — 1) * 5

else A[i,j] := 6 — j + (i — 1) * 5;

for i := 1 to 5 do

for j := 1 to 5 do

Задача 5
Дана матрица A размерностью 5 x 3, состоящая из целых чисел.
Найти номер строки, в которой сумма элементов максимальна.

Пример
A:
1 2 3
0 0 0
5 5 5
2 8 6
2 4 3
Результат: 4

i, j, Sum, Max, Imax: Integer;
begin

for i := 1 to 5 do

for j := 1 to 3 do

for i := 1 to 4 do

for j := 1 to 3 do

if (Sum > Max) or (i = 1) then

Источник: topuch.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru