Файл: Сборник-задач-на-Языке-Turbo-Pascal.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.12.2024

Просмотров: 766

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Программа, загадывающая число от 0 до 10. Если пользователь его угадывает, то программа поздравляет его, а если нет, то просит попытаться ещё раз, но убавляя количество призовых баллов.

Рrogram roulette;

Uses Crt;

var number, guess, bonus: byte;

Вegin

Clrscr;

bonus:=10;

Randomize;

number := Random(ll);

writeln('Задумано целое число от 0 до 10. Угадайте!');

writeln;

wr1teln('Введите целое число от 0 до 10');

readln(guess);

while guess <> number do

begin

Dec(bonus);

writeln('Bы не угадали.');

writeln;

if guess < number then writeln('Ваше число меньше задуманного')

else

writeln('Ваше число больше задуманного');

writeln('Попытайтесь еще раз!');

readln(guess);

end;

writeln('Поздравляю! Вы угадали и набрали ', bonus, ' очков');

readln;

Еnd.

Вычисление произведения пары неотрицательных вещественных чисел вводимых с клавиатуры и сумму всех чисел.

Program cycle;

Uses Crt;

var x, y, sum: real;

otv: char;

Begin

Clrscr;

sum:=0;

repeat

write('Введите числа x,y > 0 ');

readln(x,y);

writeln('Их произведение = ',x*y:8:3);

sum:=sum+x+y;

write('Завершить программу (Д/Н)? ');

readln(otv);

until (otv='Д') or (otv='д');

writeln('Общая сумма = ',sum:8:3);

readln;

End.

Программа, определяющая является ли число совершенным. Число является совершенным, если оно равно сумме всех своих делителей, включая единицу. (Например 6=1+2+3, 28=1+2+4+7+14).

Program sover;

Uses Crt;

var а, i, s : Integer;

Begin

Clrscr;

write('Введите целое число а:');

readln(a);

s := 0;

for i := 1 to a div 2 do

if a mod i = 0 then

begin

s : = s + i;

write('+', i);

end;

if s =a then writeln('Число ', a, 'совершенное')

else writeln('Число ', a, ' не совершенное');

readln;

End.

Программа печати всех делителей натурального числа A.

Programdelit;

Uses Crt;

var a,n,c,d:word;

Вegin

CIrScr;

readln( a );

n:=1;

while ( n <= sqrt(a) ) do begin


c:=a mod n;

d:=a div n;

if c = 0 then begin

writeln( n );

if n <> d then writeln( d );

end;

inc( n );

end;

readln;

Еnd.

Программа печати всех совершенных чисел до 10000.

Programstrong;

Uses Crt;

var n,i,j,s,lim,c,d : word;

Вegin

CIrScr;

for i:=1 to 1000 do

begin

s:=1; lim:=round(sqrt(i));

for j:=2 to lim do

begin

c:=i mod j;

d:=i div j;

if c = 0 then

begin

inc(s,j);

if (j<>d) then inc(s,d); {дважды не складывать корень числа}

end;

end;

if s=i then writeln(i);

end;

readln;

Еnd.

Программу вывода на экран всех простых чисел до 500.

Programprost;

Uses Crt;

const LIMIT = 500;

var i,j,lim : word;

Вegin

CIrScr;

writeln; {перевод строки, начинаем с новой строки}

for i:=1 to LIMIT do begin

j:=2; lim:=round(sqrt(i));

while (i mod j <> 0) and (j <= lim) do inc( j );

if (j > lim) then write( i,' ' );

end;

readln;

Еnd.

Подсчет суммы цифр числа.

Programsumma;

Uses Crt;

var a,x: integer;

i,s: integer;

Вegin

CIrScr;

writeln('введите целое число');

readln( a ); x:=a;

s:=0;

while ( x<>0 ) do

begin

s := s + (x mod 10);

x := x div 10;

end;

writeln( 'Сумма цифр числа ',a,' = ', s );

readln;

Еnd.

Программа перевода чисел из деся­тичной системы счисления в римскую (от 1 до 3999 включительно).

Programdectoroman;

Uses Crt;

const rom: array[1..13] of string[2] = ('I’, ‘IV’, ‘V’, ‘IX’, 'X', 'XL', 'L', 'XC', 'С', 'CD', 'D', 'CM', 'M');

dec: array[1..13] of word = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);

var n: word;

s: string;

i: byte;

Begin

Clrscr;

write('Введите число в десятичной системе счисления: ');

readin(n) ;

s := ‘ ‘;

i := 13;

while n <> 0 do

begin

while n >= dec[i] do

begin


n : = n - dec[ i ];

s := s + rom[i];

end;

i := i – 1;

end;

writeln('Число в римской системе счисления: ', s);

readln;

End.

Кодировка: Пример простой кодировки (сдвиг по ключу)

-----------------------------------------------------------------------------------------------------

Алгоритм: каждый код символа увеличивается на некоторое число - "ключ"

-----------------------------------------------------------------------------------------------------

Programkod;

Uses Crt;

var s: string;

i, key: integer;

Вegin

CIrScr;

writeln('Введите текст');

readln(s);

writeln('Введите ключ (число от 1 до 255)');

readln(key);

for i:=1 to length(s) do s[i]:=char( ord(s[i]) + key );

writeln('Зашифрованный текст: ',s);

readln;

Еnd.

Обработка текста: Разрешение ввода только цифр

----------------------------------------------------------------------------------

На входе - текст с цифрами (но будут вводиться только цифры)

----------------------------------------------------------------------------------

Programnumber;

Uses Crt;

const ENTER #13;

var c:char;

Вegin

CIrScr;

writeln('Вводите буквы и цифры');

c:=readkey;

while (c<>ENTER) do

begin

if c in ['0'..'9'] then write(c);

c:=readkey;

end;

writeln;

readln;

Еnd.

Массивы

Одномерный массив

Var Имя массива : array[начальный индекс .. конечный индекс] of тип данных;

Двумерный массив

Var Имя массива : array[номер первой строки .. номер последней строки , номер первого столбца номер последнего столбца] of тип элементов массива;

Вычисление значения многочлена степени N, коэффициенты которого находятся в массиве A в точке X по схеме Горнера.

Pn(x) = A[0]*X^n + A[1]*X^(n-1) + ... + A[n-1]*X + A[n] =

= (...((A[0]*X + A[1])*X + A[2])*X + ... + A[n-1])*X + A[n].

Program Scheme Gorner;

type Mas = array[0..100] of integer;

var A: Mas;

i, j, n: integer;

x, p: real;

Begin

write('степень многочлена = ');

readln(n);

writeln('введите целые коэффициенты : ');

for i:=0 to n do read(A[i]);

write('значение X = ');


readln(x);

p:=0;

for i:=0 to n do p:=p*x+A[i];

writeln('Pn(X) = ',p);

readln;

End.

Вычисление суммы элементов заданного одномерного числового массива А=(а1, а2, …, аn).

Program Summa;

UsesCrt;

TypeMas = Array [1..20] of Real;

varA : Mas;

i, N : Integer;

S : Real;

Begin

CIrScr;

write('Введите N =');

readln(N);

For i := 1 to N do

begin

write('A [', i ,']=');

readln(A[i]);

end;

S := 0;

For i := 1 to N do S := S+A[i];

writeln;

writeln('Cyммa равна', S : 5 :1);

readln;

End.

Программа выво­дящая на экран таблицу сложения натуральных чисел от 1 до 9.

Рrogram addition table;

UsesCrt;

constn = 9;

var

a : array [1..9, 1..9] of Integer;

i, j : Integer;

Вegin

CIrScr;

for i : = 1 to n do

for j := 1 to n do a[i ,j] := i + j;

for i := 1 to n do

begin

for j := 1 to n do write(a[i, j], ‘ | ‘);

writeln;

end;

readln;

Еnd.

Формирование нового одномерного массива из элементов заданного массива. (Дан массив X(N). Получим новый массивY(N), такой, что в нём сначала идут положительные числа, затем нулевые и затем отрицательные из Х).

ProgramNewOrder;

UsesCrt;

varN, i, k : Integer;

X,Y : Array [1..20] of Real;

Begin

CIrScr;

Write(‘ Введите N =');

readln(N);

For i := 1 to N do

begin

Write('X[', i,' ] = ');

readln(X[i]);

end;

k:=0;

For i := 1 to N do

If X[i]>0 then

begin

k:=k+l;

Y[k]:=X[i];

end;

For i := 1 to N do

If X[i]=0 then

begin

k:=k+l;

Y[k]:=X[i];

end;

For i:= 1 to N do

If X[i]<0 then

begin

k:=k+l;

Y[k]:=X[i];

end;

write('O т в е т: полученный массив');

For i := 1 to N do write(Y[i]: 5 : 1);

writeln;

readln;

End.

Формирование списка кандидатов в школьную баскетбольную команду. (В баскетбольную команду могут быть приняты ученики, рост которых превышает 170 см).


Program BascetBall;

Uses Crt;

var

SurName : Array [1..30] of String; { фамилии учеников}

Height : Array [ 1.. 30]ofReal; { рост учеников }

Cand : Array [ 1.. 30] of String; { фамилии кандидатов }

NPupil, i, К : Integer { NPupil - число учеников, К — количество зачисленных}

Begin

CIrScr;

write('B КОМАНДУ ЗАЧИСЛЯЮТСЯ УЧЕНИКИ,');

writeln('POCT КОТОРЫХ ПРЕВЫШАЕТ 170CM.');

writeln;

write('Cколько всего учеников ?');

readln(NPupil);

writeln(‘ Введите фамилии и рост учеников:');

For i := 1 to NPupil do

begin

write(i,'. Фамилия -');

readln(SurName[i]);

write(' Рост-');

readln(Height[i]);

end;

writeln;

K:=0; { Составление списка команды}

For i := 1 to NPupil do

If Height[i]>170 then

begin

K:=K+1;

Cand[K] := SurName[i];

end;

If K=0 then writeln('B КЛАССЕ НЕТ КАНДИДАТОВ В КОМАНДУ.')

else

begin

writeln(KAHДИДATbI В БАСКЕТБОЛЬНУЮ КОМАНДУ:');

For i := 1 to К do writeln( i, '. ', Cand[i]);

end;

readln;

End.

Подсчет суммы элементов двухмерного массива.

ProgramNewOrder;

UsesCrt;

var a:array[1..10,1..2] of integer;

s:longint;

i,j:integer;

Вegin

CIrScr;

writeln('введете 20 элементов массива');

s:=0;

for i:=1 to 10 do

begin

for j:=1 to 2 do

begin

readln( a[i,j] );

s:=s+a[i,j];

end;

end;

writeln( 'Сумма элементов массива = ', s );

readln;

Еnd.

Поиск максимального элемента в массиве.

Programmax;

UsesCrt;

var a: array[1..10] of integer;

max: integer;

i: integer;

Вegin

writeln('введите 10 элементов массива');

max:=-(MAXINT+1);

for i:=1 to 10 do

begin

readln( a[i] );

if max<a[i] then max:=a[i];

end;

writeln( 'Максимальный элемент массива = ', max );

readln;

Еnd.

Поиск среднего арифметического в массиве.

Programsred;

UsesCrt;

var a: array[1..10] of integer;

s: longint;

i, n: integer;

Вegin