Задача:Выведем на экран все символы и их коды.Код: | ||
program ASCII;
uses crt;
var i,k:integer;
Begin
clrscr;
for i:= -9 to 13 do begin
for k:= 1 to 11 do
Write((i+k*23) mod 256 ,' ',Chr(i+k*23),' ');
Writeln; {перевод строки}
end;
Readkey; {ожидание нажатия любой клавиши}
End. |
Задача:Демонстрация цветовых атрибутов текста.Код: | ||
program Colors;
uses crt;
var i:integer;
Begin
clrscr;
for i:= 0 to 1279 do begin {Все цвета}
TextAttr:=i;
Write('X');
end;
TextAttr:=10;
Readln;
clrscr;
for i:= 0 to 128 do begin {42!}
TextAttr:=i;
Write(i);
end;
Readln;
End.
|
Задача:Создайте массив А[1..15], заполненного случайными числами от-15 до 30. Дано число X. Вывести слева от числа X все элементы числового массива меньшие этого числа, а справа - большие его.Код: | ||
program mb;
var A: array[1..15] of integer;
X, i: integer;
Begin
X:= 10;
Randomize;
for i:= 1 to 15 do begin
A[i]:= Random(46)-15;
if A[i] < X then write(A[i],' '); {выводим элементы, меньшие Х}
end;
Write(X, ' '); {сам Х}
for i:= 1 to 15 do
if A[i] > X then write(A[i],' '); {и элементы больше него}
Readln;
End.
|
Задача:Введите с клавиатуры пять целочисленных элементов массива X. Выведите на экран значения корней и квадратов каждого из элементов массива.Код: | ||
program sq;
var X: array[1..5] of longint;
i: integer;
Begin
Writeln('Введите 5 целых чисел:');
for i:= 1 to 5 do
Read(X[i]);
Writeln;
for i:= 1 to 5 do begin
Write('X[',i,']= ',X[i]:5,' ');
Write('sqr(',X[i]:5,')= ',sqr(X[i]):10,' ');
Writeln('sqrt(',X[i]:5,')= ',sqrt(X[i]):5:5,' ');
end;
Readln;
Readln;
End.
|
Задача:Программа запрашивает число n у пользователя и выводит на экран все простые числа, не превосходящие n и их сумму.Код: | ||
program prosto_chisla;
uses crt;
var n,i,symma,k,pdel:integer;
p, Code : Integer;
Str: string;
yn:string;
Begin
clrscr;
repeat
symma:=0;
pdel:=0;
repeat
Write('Введите n: ');
Readln(str);
Val(Str, p, Code);
if Code<>0 then Writeln('Неправильный ввод! Ошибка в позиции: ',Code) Else Writeln('Ok!');
until Code = 0;
n:=p;
for i:=2 to n do begin
for k:=2 to i do begin {проверяем простое ли это число}
if i mod k = 0 then pdel:=pdel+1;
end;
if pdel=1 then symma:=symma+i; {т.е. оно делится только на себя(и 1)}
if pdel=1 then Write(i,' ');
pdel:=0;
end;
Writeln;
Writeln(symma);
Write('Ещё раз(y/n)? ');
Readln(yn);
until yn='n';
End.
|
Задача:Программа запрашивает число n у пользователя и выводит на экран все его простые делители и их сумму.Код: | ||
program prosto_deliteli;
uses crt;
var n,i,symma,k,pdel:integer;
P, Code : Integer;
Str: string;
yn:string;
Begin
clrscr;
repeat
symma:=0;
pdel:=0;
repeat
Write('Введите n: ');
Readln(str);
Val(Str, p, Code);
if Code<>0 then Writeln('Неправильный ввод! Ошибка в позиции: ',Code) Else Writeln('Ok!');
until Code = 0;
n:=P;
for i:=2 to n do begin
if n mod i = 0 then begin {если делитель}
for k:=2 to i do begin {проверяем простой ли он}
if i mod k = 0 then pdel:=pdel+1;
end;
if pdel=1 then symma:=symma+i; {т.е. у него 1 делитель(он сам)}
if pdel=1 then Write(i,' ');
pdel:=0;
end;
end;
Writeln;
Writeln(symma);
Write('Ещё раз(y/n)? ');
Readln(yn);
until yn='n';
End.
|
Задача:Посчитаем число счастливых билетов и вероятность, с которой можно получить один из них.Описание:Счастливым билетом считается тот, у которого сумма первых трёх цифр равна сумме трёх последних. Будем считать, что существуют билеты с номерами от 000001 до 999999.Код: | ||
program happiness;
uses crt;
var i,j,k,x,y,z: integer;
happytickets: longint;
begin
clrscr;
happytickets:= -1; {считаем, что билета 000000 не существует}
for i:= 0 to 9 do
for j:= 0 to 9 do
for k:= 0 to 9 do
for x:= 0 to 9 do
for y:= 0 to 9 do
for z:= 0 to 9 do
if i+j+k = x+y+z then inc(happytickets);
Write('Счастливых билетов: ',happytickets);
Writeln(' (это ',10000/happytickets:3:6,'% от общего числа всех билетов)');
Writeln;
Readln;
end. |
Троичная системаЗадача:Дано натуральное n, напечатать в троичной системе счисления все числа от нуля до n.Код: | ||
program Three_sys; uses crt; const lim=20; {размер массива} var n, i, p:longint; {n-число} j, r:integer; mas:array[1..lim] of integer; {массив, в котором храниться число в троичной записи} Begin clrscr; Write('Введите n: '); Readln(n); for i:= 0 to n do {перебираем все числа до n} begin p:=i; {сохраняем i в p} for j:= 1 to lim do {цикл по всем элементам массива} begin mas[j]:= p mod 3; {остаток от деления в массив} p:= p div 3; {целое от деления будем дальше делить} end; for j:= 1 to lim do if (mas[j]<>0) then r:=j; {считаем число ненулевых ячеек в массиве} if i= 0 then r:=1; Write(i,' = '); {вывод числа} for j:= 1 to r do {и его троичной записи} Write(mas[r-j+1]); {идем от конца массива} for j:= 1 to lim do mas[lim-j+1]:=0; {обнуляем массив} Writeln; end; Readln; end. |
Системы счисленияЗадача1:подсчитать количество цифр в записи числа n в системе счисления с основанием k.Код: | ||
program n_in_k_sys;
uses crt;
var n, p:longint; {n-число}
j, r, k:integer;
Begin
clrscr;
Write('Введите n: ');
Readln(n);
Write('Введите k: ');
Readln(k);
p:=n; {сохраняем n в p}
while p > 0 do
begin
p:= p div k; {целое от деления будем дальше делить}
inc(r); {инкремент или увеличение на 1}
end;
if n = 0 then r:=1;
Write('n в системе счисления с основанием ',k,' займет ',r,' разрядов'); {вывод}
Readln;
end.
Задача2:вывести представление этого числа на экран в системе k.Описание:Сделаем вывод этого числа на экран. Для его представления будем брать символы из таблицы кодов ASCII(смотри функцию Chr).Код:
program n_in_k_sys_2;
uses crt;
const
lim=20; {размер массива}
var n, p:longint; {n-число}
j, r, k:integer;
mas:array[1..lim] of integer; {массив, в котором храниться число в k-ичной записи}
Begin
clrscr;
Write('Введите n: ');
Readln(n);
Write('Введите k: ');
Readln(k);
p:=n; {сохраняем n в p}
for j:= 1 to lim do {цикл по всем элементам массива}
begin
mas[j]:= p mod k; {остаток от деления в массив}
p:= p div k; {целое от деления будем дальше делить}
end;
for j:= 1 to lim do
if (mas[j]<>0) then r:=j; {считаем число ненулевых ячеек в массиве}
if n= 0 then r:=1;
Writeln('n в системе счисления с основанием ',k,' займет ',r,' разрядов'); {вывод числа}
Write(n,' in 10 = ');
for j:= r downto 1 do
Write(Chr(mas[j]+48)); {выводим число, кодируя его символами таблицы ASCII}
Write(' in ',k);
Readln;
end.
|
Цифры в записи числаЗадача:Дано натуральное число X. Определить являются ли цифры в записи числа различными.Код: | ||
program dif_dig;
var x: longint;
D: array[0..9] of boolean;
Begin
Write('Input x:');
Readln(x);
while (x <> 0) do begin
if D[x mod 10] = true then begin
Writeln('Цифры повторяются!');
Readln;
Exit;
end
else D[x mod 10]:= true;
x:= x div 10;
end;
Write('Все цифры различны!');
Readln;
End.
|
Бархатный сезонЗадача:Данные о температуре воды на Черноморском побережье за декаду сентября хранятся в массиве Определить, сколько за это время было дней, пригодных для купания (Т > 20 ).Код: | ||
program Temperature;
var i,n: integer;
T: array[1..10] of integer;
Begin
Randomize;
for i:= 1 to 10 do begin
T[i]:= 15 + Random(15);
Write(T[i], ' ');
if T[i] > 20 then inc(n);
end;
Writeln;
Write('Дней для купания: ',n);
Readln;
End.
|
ВычисленияЗадача:Даны K,L,P. Вычислить Z=корень квадратный из (L-P2 )/L*P; и S=sinZ+K2/cosKКод: | ||
program klp;
var k,l,p: integer;
s,z: real;
Begin
repeat
Write('Введите k,p,l: ');
Readln(k,p,l);
until (p*l <> 0) and ((l- sqr(p))/(l*p) > 0); {чтобы не было деления на 0 и}
{подкоренное выражение не меньше 0}
z:= sqrt( (l- sqr(p))/(l*p) );
s:= sin(z) + sqr(k)/cos(k);
Writeln('z= ',z:6:6);
Writeln('s= ',s:6:6);
Readln;
End.
|
Разложение ln(x) в ряд ТейлораЗадача:Используя разложение в ряд Тейлора найти значение ln(x) с заданной точностью e.Описание:![]() Код: | ||
program lnx_teilor;
var x,stx,lnt,e: real;
i,fakt,z: integer;
Begin
Write('Введите 1 < x < 2: ');
Readln(x);
Write('Введите точность e: ');
Readln(e);
stx:= x-1; {x в степени}
fakt:= 1; {значение знаменателя}
lnt:= 0; {первый элемент в разложении}
i:= 1; {счётчик}
z:= 1; {знак элемента}
while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности}
lnt:=lnt+z*stx/fakt;
inc(i);
stx:=stx*(x-1);
fakt:=i;
z:=z*(-1); {смена знака}
end;
Writeln('Количество элементов в разложении = ',i);
Writeln('Значение ln(',x:6:6,')= ',lnt:6:6);
Writeln('Значение компьютера: ',ln(x):6:6);
Readln;
End.
|
| ||||||||||||||||||||||||||||||||||||
|
Простая задача на Чтение / ЗаписьЗадача:Память на жестком диске компьютера разбита на параграфы, каждый размером 16 Кб. Файл может занимать только целое кол-во параграфов, даже если параграф занят не весь, то он все равно отдается файлу полностью. Файл INPUT.TXT содержит целые числа, указанные через пробел, отвечающие размерам файлов в байтах. Неоходимо подсчитать общий объём, занимаемый ими на жестком диске. Ответ записать в файл OUTPUT.TXT .Код: | ||
program RW;
var f: text;
i,s: longint;
Begin
s:= 0;
Assign(f,'INPUT.TXT');
Reset(f);
while not Eof(f) do begin
Read(f,i);
s:= s + (i div 16384 + 1);
end;
s:= s * 16384;
Close(f);
Assign(f,'OUTPUT.TXT');
Rewrite(f);
Write(f,s);
Close(f);
End.
|
Игра тетрис, написанная на Паскале.
Скачать