среда, 16 февраля 2022 г.
понедельник, 18 мая 2020 г.
До уваги слухачів гуртків інформатики ВО МАН
Пропонуємо Вам виконати наступні практичні завдання.
Задачі
Вгадати число
var
a,b: integer;
begin
randomize;
a := random(100);
while a <> b do begin
write('Введіть число: ');
readln(b);
if b > a then
writeln('Багато')
else
if b < a then
writeln('Мало')
else
writeln('Вгадал');
end;
readln
end.
Написати програму, яка виводить квадрати цілих чисел на проміжку від A до B.
var a,b:integer;k:real;
begin
writeln('a,b');
readln(a,b)
while a<>b
begin
k:=sqr(a);
writeln(k);
a:=a+1;
end;
end.
var
a,b: integer;
begin
randomize;
a := random(100);
while a <> b do begin
write('Введіть число: ');
readln(b);
if b > a then
writeln('Багато')
else
if b < a then
writeln('Мало')
else
writeln('Вгадал');
end;
readln
end.
Написати програму, яка виводить квадрати цілих чисел на проміжку від A до B.
var a,b:integer;k:real;
begin
writeln('a,b');
readln(a,b)
while a<>b
begin
k:=sqr(a);
writeln(k);
a:=a+1;
end;
end.
Задачі
Знайти кількість цифр у цілому числі.
Program c0;
Uses crt;
Var n,k:integer;
Begin
ClrScr;
Writeln('введіть число');
readln (n);
k:=0;
while n>0 do
begin
n:=n div 10;
k:=k+1;
end;
writeln('кількість цифр =',k);
readln;
end.
Ввести дріб а / б. Визначити, Чи дріб є скоротний. (Дріб є нескоротним, якщо НСД (A, B) = 1.
Program cikl_15;
uses crt;
var m,n : longint;
begin
clrscr;
write('чисельник ');readln(m);
write('знаменник ');readln(n);
while m<>n do
if m>n
then m:=m-n
else n:=n-m;
n:=m;
if n=1
then write('скорочений')
else write('нескорочений');
readln;
end.
Задачі. Паскаль
Визначити яке з трьох, введених користувачем, чисел максимальне і вивести його на екран.
У програмі буде три змінні для чисел, що вводяться користувачем: N1, N2, N3. Також для спрощення алгоритму введемо четверту змінну, в яку по ходу виконання коду буде поміщено максимальне значення: макс.
Алгоритм
Порівняти перше і друге число (N1 і N2). Змінної макс присвоїти значення змінної, що містить більше значення.
Порівняти значення змінної макс з третім числом, введеним користувачем (n3). Якщо значення n3 виявиться більше, ніж максимальна, то привласнити максимальне значення третього числа. Якщо ж значення максимальної виявиться більше, то нічого не робити.
Як можна переписати цю програму, щоб позбутися від мітки.
У програмі буде три змінні для чисел, що вводяться користувачем: N1, N2, N3. Також для спрощення алгоритму введемо четверту змінну, в яку по ходу виконання коду буде поміщено максимальне значення: макс.
Алгоритм
Порівняти перше і друге число (N1 і N2). Змінної макс присвоїти значення змінної, що містить більше значення.
Порівняти значення змінної макс з третім числом, введеним користувачем (n3). Якщо значення n3 виявиться більше, ніж максимальна, то привласнити максимальне значення третього числа. Якщо ж значення максимальної виявиться більше, то нічого не робити.
var a1, a2, a3, max: integer; begin write ('Введіть три числа: '); readln (a1, a2, a3); if a1 >= a2 then max := a1 else max := a2; if a3 > max then max := a3; writeln ('Максимальне з них: ', max); readln end.
Як можна переписати цю програму, щоб позбутися від мітки.
label lab; var month; begin lab: write('Введіть номер місяця: '); readln(month); if not (month in [1..12]) then goto lab;
Рішення
while not (month in [1..12]) do begin write('Номер місяця : '); readln(month); end;
Паскаль. Практична робота
Таблиця множення на Паскалі
Досить часто потрібно побудувати на екрані якусь двовимірну таблицю. Це можна реалізувати за допомогою двох циклів для. При цьому один цикл повинен бути вкладений в інший.
Припустимо, нам потрібно вивести на екран таблицю множення.
Алгоритм рішення задачі:
Зовнішній цикл для відповідає за формування рядків. Всього їх буде 10, отже кількість ітерацій циклу повинне бути дорівнює 10.
Внутрішній цикл для формує кожне значення в рядку. Всього значень у рядку 10. Значить і число його ітерацій повинно бути 10.
У тілі вкладеного циклу для відбувається формування конкретного значення шляхом множення поточного значення лічильника зовнішнього циклу на поточне значення лічильника внутрішнього циклу. Оскільки протягом десяти ітерацій внутрішнього циклу, значення лічильника зовнішнього циклу не міняється, то виходить рядок, де числа від 1 до 10 множаться на одне і те ж число.
Після виходу з внутрішнього циклу, перед наступною ітерацією зовнішнього циклу потрібно здійснити перехід на новий рядок. Інакше всі значення будуть записані не у вигляді таблиці, а у вигляді одного рядка.
Визначення чверті на координатній площині
Всім відома прямокутна (декартова) система координат, в якій дві перпендикулярні осі ділять площину на чверті. У першу чверть потрапляють точки, у яких обидві координати (X і Y) більше нуля. У другу: х <0 span="span">, у> 0; третю: х <0, у <0 span="span">; четверту: х> 0, у <0 span="span">.
Допустимо, потрібно написати програму, що визначає по координатам точки, в якій чверті вона знаходиться.
Алгоритм рішення задачі:
Для вирішення цього завдання доречно використовувати умовні оператори, якщо-інакше вкладені одна в одну.0>0>0>
Припустимо, нам потрібно вивести на екран таблицю множення.
Алгоритм рішення задачі:
Зовнішній цикл для відповідає за формування рядків. Всього їх буде 10, отже кількість ітерацій циклу повинне бути дорівнює 10.
Внутрішній цикл для формує кожне значення в рядку. Всього значень у рядку 10. Значить і число його ітерацій повинно бути 10.
У тілі вкладеного циклу для відбувається формування конкретного значення шляхом множення поточного значення лічильника зовнішнього циклу на поточне значення лічильника внутрішнього циклу. Оскільки протягом десяти ітерацій внутрішнього циклу, значення лічильника зовнішнього циклу не міняється, то виходить рядок, де числа від 1 до 10 множаться на одне і те ж число.
Після виходу з внутрішнього циклу, перед наступною ітерацією зовнішнього циклу потрібно здійснити перехід на новий рядок. Інакше всі значення будуть записані не у вигляді таблиці, а у вигляді одного рядка.
var x,y:0..10; s:integer; begin for x:= 0 to 10 do for y:= 0 to 10 do begin s:=(x+1)*(y+1); write(s:5); end; writeln; end.
в такому вигляді таблиця виходить до 11, і останній WriteLn не належить першому циклу, від того і не переносить рядок, після завершення другого.
Визначення чверті на координатній площині
Всім відома прямокутна (декартова) система координат, в якій дві перпендикулярні осі ділять площину на чверті. У першу чверть потрапляють точки, у яких обидві координати (X і Y) більше нуля. У другу: х <0 span="span">, у> 0; третю: х <0, у <0 span="span">; четверту: х> 0, у <0 span="span">.
Допустимо, потрібно написати програму, що визначає по координатам точки, в якій чверті вона знаходиться.
Алгоритм рішення задачі:
Для вирішення цього завдання доречно використовувати умовні оператори, якщо-інакше вкладені одна в одну.0>0>0>
var x,y: real; begin write ('x = '); read (x); write ('y = '); readln (y); write ('Номер четверті координатної площини: '); if (x > 0) and (y > 0) then writeln ('I') else if (x < 0) and (y > 0) then writeln ('II') else if (x < 0) and (y < 0) then writeln ('III') else if (x > 0) and (y < 0) then writeln ('IV') else writeln ('-. Точка лежить на осі.'); readln end.
задачі
вивід букв англійського алфавіту
var c: char; begin for c := 'a' to 'z' do write(c,' '); writeln; c := 'A'; while c<='Z' do begin write(c,' '); c := succ(c); end; end.
вивід послідовностей 1 2 3 4 5 і 5 4 3 2 1
var i: integer; begin // for for i := 1 to 5 do write(i,' '); writeln; for i := 5 downto 1 do write(i,' '); writeln; writeln; // while i := 1; while i<=5 do begin write(i,' '); i := i + 1; end; writeln; i := 5; while i>=1 do begin write(i,' '); i := i - 1; end; writeln; writeln;
понедельник, 2 декабря 2019 г.
Подписаться на:
Комментарии (Atom)






