Линейные задачи
Вывести ступеньками разными цветами предложение «Каждый охотник желает знать где сидит фазан»
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.
Пересчет величины временного интервала, заданного в секундах в часы, минуты и секунды
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.
Преобразование вещественного числа в денежный формат
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.
Найти сумму цифр четырехзначного числа
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.
На чулочной фабрике носки складывают в пары, 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.
- Ввести два числа. Вывести их на экран в порядке возрастания.
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.
- В переменные А и В вводятся числа. Поменять их местами, не используя третьей переменной.
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.
- Ввести два (три) числа. Найти минимальное (максимальное) из них (не использовать операторы ветвления)
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.
- Дано вещественное число А, содержащее два знака до запятой и два после. Получить новое число, поменяв в числе А целую и дробную части.
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.