СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Задачи и решения для программирования в Паскаль

Категория: Информатика

Нажмите, чтобы узнать подробности

В данном материале даны задачи разных типов (линейные, ветвление, циклы) для написания на языке программирования Паскаль, а также представлены решения этих задач. Данный материал можно использовать на уроках информатики при изучении языка программирования Паскаль, а также на факультативных занятиях, элективных курсах.

Просмотр содержимого документа
«Задачи и решения для программирования в Паскаль»

Линейные задачи


Вывести ступеньками разными цветами предложение «Каждый охотник желает знать где сидит фазан»

program lena;

uses crt;

begin

textbackground(7);

clrscr;

textcolor(4);

writeln('каждый ');

textcolor(6);

gotoxy(7,2);

writeln('охотник ');

textcolor(14);

gotoxy(15,3);

writeln('желает ');

textcolor(2);

gotoxy(22,4);

writeln('знать ');

textcolor(3);

gotoxy(28,5);

writeln('где ');

textcolor(1);

gotoxy(32,6);

writeln('сидит ');

textcolor(5);

gotoxy(38,7);

writeln('фазан ');

end.


По номеру дня недели вывести его название

Uses crt;

Var a:string; b:byte; label w;

begin

clrscr;

w: Write ('Введите номер дня недели - ');

readln (b);

case b of

1:A:='понедельник';

2:A:='вторник';

3:A:='среда';

4:A:='четверг';

5:A:='пятница';

6:A:='суббота';

7:A:='воскресенье';

else begin writeln ('ERRoR!!!'); readkey; goto w; end;

end;

write (a);

readkey;

end.


Вычислить значение арифметического выражения a от b и c:

program u;

uses crt;

var c,b:byte;a:real;

begin

clrscr;

randomize;

b:=random(10)+1;

writeln('b=',b:6);

c:=random(10)+1;

writeln('c=',c:6);

a:=(sqr(abs(b)+1)-(sqr(abs(c)+1))*(abs(c)+1))/sqr(abs(b+c)+1)*sqr(abs(b+c)+1)-1;

writeln('a=',a:5:2);

readkey;

end.


Написать программу вычисления стоимости поездки на ав­томобиле на дачу (туда и обратно). Исходными данными явля­ются: расстояние до дачи (в километрах); количество бензина, которое потребляет автомобиль на 100 км пробега; цена одного литра бензина. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление стоимости поездки на дачу и обратно.

Расстояние до дачи (км) — 67

Расход бензина (литров на 100 км пробега) — 8.5

Цена литра бензина (руб.) — 6.5

обойдется в 74.04 руб.

program z;

uses crt;

var r:word;

k,c,s:real;

begin

clrscr;

writeln('вычисление стоимости поездки на автомобиле на дачу.');

write('Введите исходные данные:');

write('расстояние до дачи(км)--');

readln(r);

write('расход бензина (литр на 100км пробега)--');

readln(k);

write('цена 1л бензина(тг)--');

readln(c);

s:=c*(((2*r)/100)*k);

writeln('стоимость поездка на дачу и обратно:',s:6:2);

readkey;

end.


Найти сумму цифр случайного 4-хзначного числа

Uses crt;

Var S,p:word;

begin

textcolor (7);

textbackground (9);

clrscr;

randomize;

s:=random (9999-1000+1)+1000;

writeln (s);

p:=(s mod 10)+(s div 1000)+((s mod 100) div 10)+ ((s mod 1000) div 100);

write ('Сумма цифр числа = ',p );

readkey;

end.



{ВВЕСТИ 4-х ЗНАЧНОЕ ЧИСЛО И ПОЛУЧИТЬ ИЗ НЕГО ОБРАТНОЕ ЧИСЛО - 1234 -4321}

Uses crt;

var a,b,a0,a1,a2,a3:word;

begin

textbackground(7);

clrscr;

textcolor(2);

gotoxy(25,10);

write('Ведите 4-х значное число: ');

textcolor(4);

readln(a);

a0:=a mod 10;

a1:=(a mod 100) div 10;

a2:=(a mod 1000) div 100;

a3:=a div 1000;

b:=a0*1000+a1*100+a2*10+a3;

gotoxy(30,14);

textcolor(14);

write('НОВОЕ ЧИСЛО - ',b);

readkey;

end.


  1. Пересчет величины временного интервала, заданного в секундах в часы, минуты и секунды

Uses crt;

var x,c,m,ch:word;

begin

clrscr;

Write('Введите секунды: '); readln(x);

c:=x mod 60;

m:=((x-c) div 60) mod 60;

ch:=(x-c-m*60) div 3600;

writeln(ch,'ч.',m,'мин.',c,'сек.');

readkey;

end.

  1. Преобразование вещественного числа в денежный формат

Uses crt;

var x:real;

r,k:word;

begin

clrscr;

Write('Введите вещественное число rrrrrr,kk: '); readln(x);

r:=trunc(x);

k:=trunc(frac(x)*100);

writeln(r,'тенге',k,'тиын');

readkey;

end.

  1. Найти сумму цифр четырехзначного числа

Uses crt;

var x,x0,x1,x2,x3,s:word;

begin

clrscr;

Write('Введите четырехзначное число : '); readln(x);

x0:=x mod 10;

x1:=(x div 10) mod 10;

x2:=(x div 100) mod 10;

x3:=x div 1000;

s:=x0+x1+x2+x3;

writeln('s=',s);

readkey;

end.


Написать программу вычисления величины дохода по вкла­ду. Процентная ставка (в процентах годовых) и время хранения (в днях) задаются во время работы программы. Ниже представ­лен рекомендуемый вид экрана во время работы программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление дохода по вкладу.

Введите исходные данные:

Величина вклада (руб.) — 2500

Срок вклада (дней) — 30

Процентная ставка (годовых) — 20

Доход: 41.10 руб. Сумма по окончании срока вклада: 2541.10 руб.


Uses crt;

Var x,y,z:word; q,w:real;

begin

clrscr;

Write ('Величина вклада - ');

readln (x);

write ('Срок вклада - ');

readln (y);

write ('Процентная ставка - ');

readln (z);

q:=y*(x*((z/100)/365));

writeln (' доход: ',q:10:2,’руб.’);

w:=q+x;

write (' Сумма по окончанию срока вклада: ',w:10:2,’руб.’);

readkey;

end.



  1. На чулочной фабрике носки складывают в пары, 12 пар – в связку, 10 связок – в коробку. Сколько коробок, связок и носок получится из n носок? n – представить как случайное число

Uses crt;

var n,k,c,p,x:word;

begin

clrscr;

randomize;

x:=random(65000);

writeln('Произведено носок - ',x,'штук');

k:=x div 240;

c:=(x-k*240) div 24;

p:=(x-k*240-c*24) div 2;

n:=x-k*240-c*24-p*2;

writeln('коробок - ',k,' связок - ',c,' пар - ',p,' носок - ',n);

readkey;

end.

  1. Ввести два числа. Вывести их на экран в порядке возрастания.

Uses crt;

var a,b,max,min,s1,s2:integer;

begin

clrscr;

writeln('Введите два числа: ');

write('a -');

readln(a);

write('b -');

readln(b);

s1:=(a+b);

s2:=abs(a-b);

max:=(s1+s2) div 2;

min:=(s1-s2) div 2;

writeln(min, max:6);

readkey;

end.


  1. В переменные А и В вводятся числа. Поменять их местами, не используя третьей переменной.

Uses crt;

var a,b:word;

begin

clrscr;

writeln('Введите два числа: ');

write('a -');

readln(a);

write('b -');

readln(b);

a:=a+b;

b:=a-b;

a:=a-b;

writeln('Меняем числа местами:');

writeln('a - ',a);

writeln('b - ',b);

readkey;

end.

  1. Ввести два (три) числа. Найти минимальное (максимальное) из них (не использовать операторы ветвления)

Uses crt;

var a,b,c,max,min,s1,s2:integer;

begin

clrscr;

writeln('Введите три числа: ');

write('a -');

readln(a);

write('b -');

readln(b);

write('с -');

readln(c);

s1:=(a+b);

s2:=abs(a-b);

max:=(s1+s2) div 2;

min:=(s1-s2) div 2;

s1:=max+c;

s2:=abs(max-c);

max:=(s1+s2) div 2;

s1:=min+c;

s2:=abs(min-c);

min:=(s1-s2) div 2;

writeln('max - ',max);

writeln('min - ',min);

readkey;

end.

  1. Дано вещественное число А, содержащее два знака до запятой и два после. Получить новое число, поменяв в числе А целую и дробную части. 

Uses crt;

var a,b:integer;x:real;

begin

clrscr;

writeln('Введите вещественное число ХХ.ХХ : ');

readln(x);

a:=trunc(x);

b:=trunc(x*100) mod 100;

x:=b+a*0.01;

writeln('Новое число -',x:6:2);

readkey;

end.



Обратное число к сгенерированному трехзначному числу

Uses crt;

Var a,a1,a2,a3,a4:word;

begin

clrscr;

randomize;

a:=random (900)+100;

writeln (' a= ',a);

a1:=a mod 10;

a2:=a div 10 mod 10;

a3:=a div 100;

a4:=a1*100+a2*10+a3;

write (' a4= ',a4);

readkey;

end.



Сгенерировать случайные числа:

1) целое в интервале от 0 до 67;

2) целое двухзначное;

3) вещественное с двумя целыми знаками;

4) целое из ряда 60, 70, 80, 90, …, 150;

5) вещественное из ряда -1.5, -1.3, -1.1, …, 0.7, 0.9.

Uses crt;

Var a1,a4:byte; a2:word; a3,a5:real;

begin

clrscr;

randomize;

a1:=random (68);

a2:=random (90)+10;

a3:=random*100;

a4:=random ((150-60) div 10+1)*10+60;

a5:=random (trunc(2.4/0.2+1))*0.2-1.5;

writeln (' a1= ',a1);

writeln (' a2= ',a2);

writeln (' a3= ',a3:8:3);

writeln (' a4= ',a4);

writeln (' a5= ',a5:8:1);

readkey;

end.


Взять случайное число в промежутке от 0 до 1. Выдать его на экран с 8 дробными знаками. Получить из него число с 4 целыми знаками и 4 дробными, выдать на экран. Получить шестизначное целое число, выдать его на экран.

Uses crt;

Var a:real; a1:longint;

begin

clrscr;

randomize;

a:= random;

writeln (' a= ',a:10:8);

a:=a*10000;

writeln (' a= ',a:10:4);

a1:=trunc (a*100);

writeln (' a1= ',a1);

readkey;

end.


Ветвление


Движение * под управлением чисел.

program t;

uses crt;

label 1;

var x,y:word;q:char;

begin

clrscr;

x:=40;

y:=12;

1: textcolor(14);

gotoxy(x,y);

write('*');

q:=readkey;

textcolor(0);

gotoxy(x,y);

write('*');

if q='2' then y:=y+1;

if q='8' then y:=y-1;

if q='4' then x:=x-1;

if q='6' then x:=x+1;

if q='q' then halt;

goto 1;

readkey;

end.


Движение круга по экрану под управлением клавиш 2,4,6,8,q.

uses crt,graph;

var gd,gm,x,y:integer;r:char;

procedure kr(x,y,c:integer);

begin

setfillstyle(1,c);

setcolor(c);

circle(x,y,c);

floodfill(x,y,c);

end;

begin

gd:=detect;

initgraph(gd,gd,'');

x:=320;

y:=240;

repeat

kr(x,y,10);

r:=readkey;

cleardevice;

if r='2' then y:=y+10;

if r='8' then y:=y-10;

if r='6' then x:=x+10;

if r='4' then x:=x-10;

until r='q';

readkey;

end.


По сторонам треугольника найти радиус описанной окружности

program t2;

uses crt;

label 1;

var a,b,c:byte;r,p:real;

begin

1:clrscr;

writeln('введите длины сторон треугольника');

readln(a,b,c);

if (a=b+c) or (b=a+c) or(c=a+b) then

begin writeln('стороны заданы неверно');readkey; goto 1;end;

p:=(a+b+c)/2;

r:=(a*b*c)/(4*sqrt(p*(p-a)*(p-b)*(p-c)));

writeln('радиус окружности, описанной вокруг треугольника-- ',r:6:2);

readkey;

end.


Если введеное число отрицательное – У=1, если больше 2 – У=2, иначе У=0.5

Uses crt;

Var x:integer; y:real;

begin

clrscr;

write ('Введите x - ');

readln (x);

if x

if x2 then y:=2;

if (x0) then y:=0.5;

write ('y= ',y:5:3);

readkey;

end.


По введенной дате определить следующее число

Uses crt;

label 1;

Var a,b:byte; c:word;

begin

clrscr;

1: Write ('Bведите число,месяц,год - ');

readln (a,b,c);

case b of

1,3,5,7,8,10,12:if a31 then begin writeln('Error');readkey;goto 1;end;

4,6,9,11:if a30 then begin writeln('Error');readkey;goto 1;end;

2:if (a29) then begin writeln('Error');readkey;goto 1;end

else if (a=29) and (c mod 40) then

begin writeln('Error');readkey;goto 1;end;

end;


case b of

1,3,5,7,8,10:if a

4,6,9,11:if a

12:if a

2:if a

end;

writeln ('следующее число - ',a,'.',b,'.',c);

readkey;

end.


Вычислить:

Uses crt;

Var x,y,z,min,max:word; m:real;

begin

clrscr;

write ('X - ');

readln (x);

write ('y - ');

readln (y);

write ('z - ');

readln (z);

if x

if (xy) and (xz) then max:=x;

if (zy) and (zx) then max:=z;

if (yx) and (yz) then max:=y;

m:=max/min+5;

writeln ('m= ',m:8:2);

readkey;

end.

По номеру дня недели определить его название

Uses crt;

Var a:string; b:byte; label w;

begin

clrscr;

w: Write ('Введите номер дня недели - ');

readln (b);

case b of

1:A:='понедельник';

2:A:='вторник';

3:A:='среда';

4:A:='четверг';

5:A:='пятница';

6:A:='суббота';

7:A:='воскресенье';

else begin writeln ('ERRoR!!!'); readkey; goto w; end;

end;

write (a);

readkey;

end.


Ввести 3 числа и вывести их в порядке возрастания.

uses crt;

var a,b,c:word;

begin

clrscr;

writeln('Ведите 3 числа');

readln(a,b,c);

if (a

if (b

else write(c:5,b:5);end;

if (b

if (a

else write(c:5,a:5);end;

if (c

if (b

else write(a:5,b:5);end;

readkey;

end.


С клавиатуры вводится символ. Определить, к какому алфавиту – русскому или латинскому – он принадлежит.

program xxxx;

uses crt;

var a: char;

begin

clrscr;

write('Введите символ: ');readln(a);

case a of

'a'..'z','A'..'Z':writeln('символ латинского алфавита');

'а'..'я','А'..'Я': writeln('символ русского алфавита');

end;

readkey;

end.


Определить, является введенное 3-хзначное число палиндромом

uses crt;

var n,n1,n2,n3,r:word;

begin

clrscr;

Write('Ведите 3-хзначное число: '); readln(n);

n1:=n div 100;

n2:=(n div 10) mod 10;

n3:=n mod 10;

r:=n3*100+n2*10+n1;

writeln('обратное число--',r);

if r=n then writeln('Введеное число ',n,' - палиндром ')

else writeln('Введеное число ',n,' - не является палиндром ');

readkey;

end.



В двенадцатилетнем цикле года носят названия животных: мышь, корова, тигр, заяц, улитка, змея, лошадь, овца, обезьяна, курица, собака, свинья. Известно, что 1984 год был годом мыши. Написать программу, которая вводит номер года нашей эры с клавиатуры и выводит его название по 12-ти летнему циклу. (1001 – корова).

program t2;

uses crt;

var a,n:word;s:string;

begin

clrscr;

write('Введите год: ');

readln(a);

n:=a mod 12;

case n of

1:s:='курца';

2:s:='собака';

3:s:='свинья';

4:s:='мышь';

5:s:='корова';

6:s:='тигр';

7:s:='заяц';

8:s:='улитка';

9:s:='змея';

10:s:='лошадь';

11:s:='овца';

12:s:='обезьяна';

end;

writeln(s);

readkey;

end.


Написать программу проверки знания таблицы умножения

program tm;

uses crt;

label 1;

var c,b,a:byte;q:char;

begin

1:textbackground(7);textcolor(9);

clrscr;

writeln(' п р о в е р к а з н а н и я т а б л и ц ы у м н о ж е н и я');

randomize;

a:=random(10)+1;

b:=random(10)+1;

gotoxy(30,5);

textcolor(1);

write(a,'*',b,'=? ');

textcolor(9);

readln(c);

textcolor(1);

if (a*b=c) then writeln('Правильно!':50) else writeln('Неправильно!':50);

gotoxy(45,20);

textcolor(9);

write('п р о д о л ж и т ь ? ( Y / N )');

readln(q);

if (q='y')or(q='Y')or(q='н')or(q='Н') then goto 1;

readkey;

end.


Представить вещественное число в денежном формате

Uses crt;

Var a,b:word; r:string; x:real;

begin

clrscr;

write ('Введите число - ');

readln (x);

a:=trunc (x);

if a div 10 mod 10 1 then

case a mod 10 of

0,5..9:r:='рублей';

1:r:='рубль';

2..4:r:='рубля';

end

else r:='рублей';

write (a,' ',r);

x:=frac (x);

b:=trunc (x*100);

if b div 10 mod 10 1 then

case b mod 10 of

0,5..9:r:='копеек';

1:r:='копейка';

2..4:r:='копейки';

end

else r:='копеек';

write (' ',b,' ',r);

readkey;

end.



Циклы


Выдать на экран волны

program rrrr;

uses crt,graph;

var gd,gm:integer;j,x,y,i:word;

begin

gd:=detect;

initgraph(gd,gm,'');

y:=60;

for j:=1 to 5 do begin

x:=50;

for i:=1 to 4 do begin

arc(x,y,0,180,50);

arc(x+100,y,180,360,50);

x:=x+200; end;

y:=y+110; end;

readkey;

end.



program ti; {таблица пифагора}

uses crt;

var j,i:word;

begin

clrscr;

for i:=1 to 10 do begin

for j:=1 to 10 do

write(i*j:4);

writeln; end;

readkey;

end.


определить число фазанов к кроликов по числу голов и ног}

Uses crt;

var x,y,a,b:integer;

begin

clrscr;

write('Введите число голов ');readln(a);

write('Введите число ног ');readln(b);

for x:=0 to a do

for y:=0 to a do

if (x+y=a) and (x*2+y*4=b) then

begin writeln('фазанов - ',x,'кроликов - ',y);readkey;halt;end;

writeln('error');

readkey;

end.


program ti; {нахождение НОД}

uses crt;

var i,n,s,q:word;

begin

clrscr;

randomize;

s:=0;

writeln('enter n ');

readln(n);

for i:=1 to n do begin

q:=random(90)+10;

writeln('числа',q);

s:=s+q; end;

writeln('сумма-- ',s);

readkey;

end.



program ti; {сумма делителей}

uses crt;

var i,n,s:word;

begin

clrscr;

s:=0;

writeln('enter n ');

readln(n);

for i:=1 to n-1 do

if n mod i=0 then begin writeln(i); s:=s+i;end;

writeln('сумма-- ',s);

readkey;

end.


program ti; {n чисел фибоначчи }

uses crt;

var n,n1,n2,n3,i:word;

begin

clrscr;

writeln('введите n ');

readln(n);

n1:=1;

n2:=1;

write(n1:5,n2:5);

for i:=3 to n do begin

n3:=n1+n2;

write(n3:5);

n1:=n2;

n2:=n3;

end;

readkey; end.


Найти число в последовательности Фибоначчи большее заданного числа М и его порядковый номер. Члены ряда Фибоначчи вычисляются по формуле: F(1) = F(2) = 1

F(k) = F(k-1) + F(k-2), k 2

program xxxx;

uses crt;

var n1,n2,k,f,M:word;

begin

clrscr;

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

read(m);

n1:=1;n2:=1;k:=2;

while m=n2 do begin

k:=k+1;

f:=n1+n2;

n1:=n2;

n2:=f; end;

writeln('Число - ',n2, ' его порядковый номер - ',k);

readkey;

end.


Вычислить сумму с точностью до 0.0001:

program xxxx;

uses crt;

var n,k:word;s:real;

begin

clrscr;

s:=2;n:=2; k:=0;

while 2/n=0.0001 do begin

k:=k+1;

s:=s+(2/n);

n:=n+1 end;

writeln('S=',s:10:4,' к-во элементов - ',k);

readkey;

end.


Решить арифметический ребус КИО*ИО= ТОКИО. Вместо каждой буквы необходимо поставить некоторую цифру, причем одинаковые буквы означают одинаковые цифры, а различные буквы - различные цифры.

program xxxx;

uses crt;

var i,k,o,t:word;

begin

clrscr;

for t:=0 to 9 do

for o:=0 to 9 do

for k:=0 to 9 do

for i:=0 to 9 do

If (k*100+i*10+o)*(i*10+o)=(t*10000+o*1000+k*100+i*10+o) then

if (ki) and (ko) and (kt) and (io) and (it) and (ot) then

begin writeln('T-',t:2,' O - ',o,' K - ',k,' I - ',i);

writeln(k,i,o,'*',i,o,'=',t,o,k,i,o)

end;

readkey;

end.


В магазине имеется мастика в ящиках по 16 кг, 17 кг и 21 кг. Получить 185 кг мастики без вскрытия ящиков. Рассмотреть все варианты.

program xxxx;

uses crt;

var o,k,t:word;

begin

clrscr;

for t:=0 to 185 div 21 do

for o:=0 to 185 div 17 do

for k:=0 to 185 div 16 do

If t*21+o*17+k*16=185 then

writeln('по 21 кг -',t:4,' по 17 кг - ',o:4,' по 16 кг - ',k);

readkey;

end.


program ti; {совершенные числа между m и n}

uses crt;

var i,m,n,j,s:word;

begin

clrscr;

writeln('enter m,n ');

readln(m,n);

if mn then begin m:=m+n;n:=m-n;m:=m-n;end;

for j:=m to n do begin

s:=0;

for i:=1 to j-1 do

if j mod i=0 then s:=s+i;

if j=s then writeln(j);

end;

readkey;end.


Проход по экрану имени

program rnok;

uses crt;

var x:word;

begin;

clrscr;

for x:=1 to 76 do begin

textcolor(14);

gotoxy(x,12);

write('Lena ');

delay(10000);

textcolor(0);

gotoxy(x,12);

write('Lena ');

end;

textcolor(14);

gotoxy(x,12);

write('Lena ');

readkey;

end.


Нахождение числа Pi/4 с заданной точностью.

program w5;

uses crt;

var s1,s2:real;k,i:word;

begin

clrscr;

s1:=0;

s2:=1;

i:=1;k:=1;

while abs(s1-s2)0.0001 do begin

s1:=s2;

i:=i+2;

if k mod 2=0 then

s2:=s1+(1/i) else s2:=s1-(1/i);

k:=k+1; end;

writeln(s2:10:6);

writeln('Pi=',s2*4:10:6);

readkey;

end.




График функции

uses crt,graph;

var gd,gm,x,y:integer;x1,y1:real;

begin

gd:=detect;

initgraph(gd,gd,'');

setlinestyle(0,0,3);

line(0,240,640,240);

line(320,0,320,480);

while x

line(x,235,x,245);

x:=x+10; end;

while y

line(315,y,325,y);

y:=y+10; end;

x1:=-10;

while x1

y1:=(x1-2)*(x1-2)+2;

x:=trunc(x1*10)+320 ;

y:=240-trunc(y1*10);

putpixel(x,y,14);

x1:=x1+0.01; end;

readkey;

end.



таблица значений функции у=|x|+2 от -4 до 4 с шагом 0.5

program rnok;

uses crt;

var x,y:real;

begin;

clrscr;

writeln('y':20,' : ','x':5);

writeln(' --------------');

x:=-4;

repeat

y:=abs(x)+2;

writeln(y:20:1,' : ',x:5:1);

x:=x+0.5;

until x4;

readkey;

end.

наименьшее общее кратное

program nok1;

uses crt;

var nok,n1,n2:byte;i:word;

begin

clrscr;

writeln('введите два числа'); readln(n1,n2);

nok:=1;

for i:=n1*n2 downto 2 do

if (n1 mod i=0) and (n2 mod i=0) then nok:=i;

write('NOK -',nok);

readkey;

end.


перевод вещественного 10-го числа в двоичный код

program w2;

uses crt;

var i:byte;kc,yc,xc,yd,x1c:longint;xd,kd,x1d,x:real;

begin

clrscr;

kc:=1; x1c:=0;

writeln('введите x ');

readln(x);

xc:=trunc(x);xd:=frac(x);

while xc0 do begin

yc:=xc mod 2;

x1c:=x1c+yc*kc;

kc:=kc*10;

xc:=xc div 2; end;

kd:=0.1; x1d:=0;

for i:=1 to 10 do begin

yd:=trunc(xd*2);

x1d:=x1d+yd*kd;

xd:=frac(xd*2);

kd:=kd*0.1; end;

writeln(x1c+x1d:12:10);

readkey;

end.


{Имеется А монет по 1 тенге, В - 5 тенге,С - 10 тенге, D - 20 тенге

Е - 50 тенге, F - 100 тенге. Можно ли набрать этими монетами сумму S тенге?

Если да, то как}

Uses crt;

var a,b,c,d,e,f,s:word;

i1,i5,i10,i20,i50,i100:word;

k:boolean;

begin

textbackground(7);

clrscr;

textcolor(2);

write('Ведите количество монет по 1 тенге: ');

textcolor(4); readln(a);

textcolor(2);

write('Ведите количество монет по 5 тенге: ');

textcolor(4); readln(b);

textcolor(2);

write('Ведите количество монет по 10 тенге: ');

textcolor(4); readln(c);

textcolor(2);

write('Ведите количество монет по 20 тенге: ');

textcolor(4); readln(d);

textcolor(2);

write('Ведите количество монет по 50 тенге: ');

textcolor(4); readln(e);

textcolor(2);

write('Ведите количество монет по 100 тенге: ');

textcolor(4); readln(f);

textcolor(14);

gotoxy(2,10);

write('Введите сумму: '); readln(s);

k:=false;

gotoxy(1,12);

for i1:=0 to a do

for i5:=0 to b do

for i10:=0 to c do

for i20:=0 to d do

for i50:=0 to e do

for i100:=0 to f do

if s=i100*100+i50*50+i20*20+i10*10+i5*5+i1*1 then begin

writeln(s,'= 100* ',i100,' + 50* ',i50,' + 20* ',i20,' + 10* ',i10,

' 5* ',i5,' 1* ',i1);

k:=true; end;

textcolor(4);

if k=false then write('нельзя набрать эту сумму');

readkey;

end.


Напечатать изображение всех простых несократимых правильных дробей, знаме­натель которых не превышает 8. Найти и напечатать их сумму

program xxxx;

uses crt;

var k,n,m,i:byte;

begin

clrscr;

write('Выбери число от 2 до 9: ');readln(k);

i:=0;

for n:=1 to k do

for m:=1 to k do

if (n0) or (n=1)) then begin

writeln (n,'/',m);

i:=i+1; end;

writeln('к-во чисел - ',i);

readkey;

end.


Найти все четырехзначные числа кратные 7 , у которых и сумма цифр кратна 7.

program xxx;

uses crt;

var k,n,m,i:word;

begin

clrscr;

writeln('Числа, кратные 7 , и у которых сумма цифр кратна 7:');

for i:=100 to 999 do begin

k:=i div 100;

n:=i div 10 mod 10;

m:=i mod 10;

if (i mod 7=0) and ((k+m+n) mod 7=0) then

writeln (i); end;

readkey;

end.


Заданы числители и знаменатели двух правильных положительных простых дро­бей. Вычесть вторую дробь из первой. Результат представить в виде знака дроби, а также ее числителя и знаменателя после возможного их сокращения. Выполнить проверку ввода информации.

program xxxx;

uses crt;

label 1 ;

var i,a,b,c,d,x,y,z,nod:integer;

begin

1:clrscr;

write('Ведите числитель и знаменатель 1 дроби: ');readln(a,b);

write('Ведите числитель и знаменатель 2 дроби: ');readln(c,d);

if (a=b) or (c=d) then begin Writeln('повтори ввод!!');readkey;goto 1;end;

x:=(a*d-b*c);

y:=(b*d);

z:=0;

writeln('Результат: ');

if x=0 then begin writeln(x); readkey;halt;end;

if xy then begin

if (x mod y=0) then begin

x:=x div y; writeln(x); readkey;halt;

end

else z:=x div y;

end;

for i:=1 to abs(x) do

if (x mod i=0) and (y mod i=0) then nod:=i;

x:=x div nod;

y:=y div nod;

if z=0 then writeln(x,'/',y) else writeln(z,' ',x,'/',y);

readkey;

end.


Строки

Ввести предложение. Определить:

  • Количество слов

  • Количество слов с буквой а

  • Количество букв в каждом слове

  • Порядковый номер самого длинного слова

  • С какого символа по счету начинается самое длинное слово

uses crt;

var s:string;

ll,lmax,max,mmax,l,m,m1,i,k,n:integer;

begin

clrscr;

readln(s);

max:=0;

l:=1;{к-во слов}

m:=0; {№ слова}

ll:=0; {всего символов до конца максимального слова}

m1:=0;{длина слова c № m}

k:=0; {к-во слов с а}

n:=0; {=2, если в слове есть а}

for i:=1 to length(s) do begin ll:=ll+1;

if s[i]' ' then begin m1:=m1+1;

if s[i]='a' then n:=2

end

else begin l:=l+1;

if n=2 then begin k:=k+1;n:=0; end;

m:=m+1;

If m1max then begin max:=m1;mmax:=m;lmax:=ll-m1;end;

writeln('слово ',m,' - ',m1);

m1:=0;

end;

end;

m:=m+1;

writeln('слово ',m,' - ',m1);

if n=2 then k:=k+1;

If m1max then begin max:=m1;mmax:=m;lmax:=ll-max+1;end;

writeln('к-во слов с а - ',k);

writeln(' всего слов - ',l);

writeln('самое длинное слово и его длинна -',mmax,max:7);

writeln('самое длинное словo начинается на символе - ',lmax);

readkey;

end.

Файлы


{Взять числа из файла и переписать их в другой отделяя каждые

3 знака пробелом.Пример, 10000 - 10 000.}

Uses crt;

Var b,s,c:string;

f,t:text;i,j,n,k:integer;

a: array[1..10] of string;

Begin

Clrscr;

Assign(f,'om.in');

Reset(f);

i:=0;

while not(eof(f)) do begin

i:=i+1;

readln(f,a[i]);

writeln(a[i]);

end;

close(f);

n:=i;

Assign(t,'om.out');

rewrite(t);

for i:=1 to n do begin

s:='';b:=a[i];c:='';k:=0;

For j:=length(b) downto 1 do begin

k:=k+1;

if k mod 3=0 then s:=' '+b[j]+s else s:=b[j]+s;

end;

writeln(s);

writeln(t,s);

end;

close(t);

readkey;

end.