Процедуры и функции в Паскале
Задача 9. ( урок )
Процедура, которая меняет местами значения двух переменных.
Пояснение: обычно, чтобы поменять местами значения двух переменных, нужна третья переменная, в которой будет храниться значение первой переменной, когда ей присваивается значение второй.
текст программы
var x,y:integer;
procedure chan(var a,b:integer);
var c:integer;
begin
c:=a;a:=b;b:=c;
end;
begin
readln(x,y);
writeln(x,’ ‘,y);
chan(x,y) ;
writeln(x,’ ‘,y);
end.
Задача 10. ( урок )
Процедура, которая для вводимого с клавиатуры целого числа значения возраста выводит на экран это число с соответствующим наименованием:
Например: 21 год, 23 года, 27 лет Пояснение: Рассмотрим, в каких случаях будет наименование «год», «года», «лет».
Если возраст оканчивается на 1 — то будет год, если на 2,3,4 — «года», в остальных случаях — «лет». Будем расписывать условия через функцию mod и вложенный if.
#22.That Accepts 4 Integers p, q, r, s from the user where . print »wrong»value .C Program !
текст программы
var x:integer;
procedure god(a:integer);
begin
if a mod 10=1 then writeln(a,’ год’)
else
if (a mod 10=2)or (a mod 10=3)or(a mod 10=4)then writeln(a,’ года’)
else writeln(a,’ лет’);
end;
begin
readln(x);
god(x);
end.
Задача 10. ( урок )
Функция, которая определяет наибольшее число из трех, вводимых с клавиатуры.
текст программы
var x,y,z:real;
function max3(a,b,c:real):real;
var m:real;
begin
if a>b then m:=a else m:=b;
Источник: pascal304.blogspot.com
Решение задач. День восьмой. Задачи If1-15
Всем привет! Сегодня мы начнем долгожданный разбор задач по программированию if1-15, а также вспомним и научимся применять различные процедуры. В решениях к некоторым задачам Вам встретится возможно неизвестная прежде процедура Inc. Пояснения к ней и к другим процедурам можно найти в этой статье .
If1. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число.
Program If_1; var a: integer; begin readln(a); if a > 0 then Inc(a); write(a); end.
If2. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2. Вывести полученное число.
Program If_2; var a: integer; begin readln(a); if a > 0 then Inc(a) else a -= 2; write(a); end.
If3. Дано целое число. Если оно является положительным, то прибавить к нему 1; если отрицательным, то вычесть из него 2; если нулевым, то заменить его на 10. Вывести полученное число.
Program If_3; var a: integer; begin readln(a); if a >= 0 then if a = 0 then a := 10 else Inc(a) else a -= 2; write(a); end.
If4°. Даны три целых числа. Найти количество положительных чисел в исходном наборе.
C Program to Print an Integer (Entered by the User) | Printing an Integer Entered by the User
Program If_4; var a, b, c, plus: integer; begin write(‘Введите три целых числа: ‘); readln(a, b, c); if a > 0 then Inc(plus); if b > 0 then Inc(plus); if c > 0 then Inc(plus); writeln(‘Количество положительных чисел: ‘, plus); end.
If5. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.
Program If_5; var a, b, c, plus, minus: integer; begin write(‘Введите три целых числа: ‘); readln(a, b, c); if a > 0 then Inc(plus) else Inc(minus); if b > 0 then Inc(plus) else Inc(minus); if c > 0 then Inc(plus) else Inc(minus); writeln(‘Количество положительных чисел — ‘, plus); writeln(‘Количество отрицательных чисел — ‘, minus); end.
If6°. Даны два числа. Вывести большее из них.
Program If_6; var a, b: integer; begin write(‘Введите числа: ‘); readln(a, b); if a > b then writeln(a) else writeln(b); end.
If7. Даны два числа. Вывести порядковый номер меньшего из них.
Program If_7; var a, b: integer; begin write(‘Введите числа: ‘); readln(a, b); if a < b then writeln(1) else writeln(2); end.
If8°. Даны два числа. Вывести вначале большее, а затем меньшее из них.
Program If_8; var a, b: integer; begin write(‘Введите числа: ‘); readln(a, b); if a > b then writeln(a,’ ‘, b) else writeln(b,’ ‘, a); end.
If9. Даны две переменные вещественного типа: A, B. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.
Program If_9; var a, b: integer; begin write(‘Введите A: ‘); readln(a); write(‘Введите B: ‘); readln(b); if a > b then writeln(‘A = ‘, a,’; B = ‘, b) else writeln(‘A = ‘, b,’; B = ‘, a); end.
If10. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
Program If_10; var a, b: integer; begin write(‘Введите A: ‘); readln(a); write(‘Введите B: ‘); readln(b); if a <> b then writeln(‘A = ‘, a+b,’; B = ‘, a+b) else writeln(‘A = ‘,0,’; B = ‘,0); end.
If11. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
Program If_11; var a, b: integer; begin write(‘Введите A: ‘); readln(a); write(‘Введите B: ‘); readln(b); if a = b then writeln(‘A = ‘,0,’; B = ‘,0) else if a > b then writeln(‘A = ‘, a,’; B = ‘, a) else writeln(‘A = ‘, b,’; B = ‘, b); end.
If12°. Даны три числа. Найти наименьшее из них.
Program If_12; var a, b, c: integer; begin write(‘Введите три числа: ‘); readln(a, b, c); if (a < b) and (a < c) then writeln(a) else if b < c then writeln(b) else writeln(c); end.
If13. Даны три числа. Найти среднее из них (то есть число, расположенное между наименьшим и наибольшим).
Program If_13; var a, b, c, srednee:integer; begin write(‘Введите три числа: ‘); readln(a, b, c); if (a > c) and (a > b) then if c > b then srednee := c else srednee := b; if (b > a) and (b > c) then if a > c then srednee := a else srednee := c; if (c > a) and (c > b) then if a > b then srednee := a else srednee := b; writeln(‘Среднее: ‘, srednee); end.
If14. Даны три числа. Вывести вначале наименьшее, а затем наибольшее из данных чисел.
Program If_14; var a, b, c, min, max :integer; begin write(‘Введите три числа: ‘); readln(a, b, c); if (a > c) and (a > b) then max := a else if b > c then max := b else max := c; if (a < c) and (a < b) then min := a else if b < c then min := b else min := c; writeln(‘Наименьшее число: ‘, min); writeln(‘Наибольшее число: ‘, max); end.
If15. Даны три числа. Найти сумму двух наибольших из них.
Program If_15; var a, b, c :integer; begin write(‘Введите три числа: ‘); readln(a, b, c); if (a < b) and (a < c) then writeln(b+c) else if b < c then writeln(a+c) else writeln(a+b); end.
Фух! На сегодня все! Если у вас возникли какие-либо вопросы не стесняйтесь, оставляйте все свои вопросы в комментариях под статьей! И не забывайте кликать по кнопочкам и рассказывать о нас своим друзьям.
Источник: learnpascal.ru
Div, Mod, сложение, вычитание в Pascal.
Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».
program number7; uses crt; var A,B,C: integer; begin clrscr; A:=17; B:=3; C:=A div B; writeln (’17 div 3 = ‘,C); C:=A mod B; writeln (’17 mod 3 = ‘,C); C:=A-B; writeln (’17-3 =’,C); readln end.
В строке №8 используется операция Div. Это операция деления нацело, т. е. в результате получится целое число без остатка. Если 17 разделить на 3, то получится 5,66666… Здесь — целое число 5, оно и будет результатом операции div.
Строка №10. Операция Mod вычисляет остаток от целочисленного деления. Если мы разделим 17 на 3, то получится 5 – целое число и 2 – остаток. Таким образом, результатом операции Mod будет число 2
Теперь запишем нашу программу в Паскале и и запустим ее.
Дополнение к материалу.
Правила приоритета при выполнении операций в Паскале.
- Сначала выполняются действия над переменными, которые стоят в скобках.
- Затем вычисляются функции.
- Затем умножение и деление.
- Затем сложение и вычитание.
Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.
Комментарии
+9 # Irzorg 04.04.2012 17:46
помогите решить задачу 1811 mod 32 = 19! Как получается этот ответ, все испробывал, не могу получить!
+2 # Евгений 09.01.2015 18:56
Достаточно в выше показанной программе переменную А определить как 1811,а переменную В как 32 то переменная С (C:=A mod B) и определит искомые 19.
+68 # Administrator 05.04.2012 08:29
Делишь 1811 на 32, получается 56,59375. Из этого числа берем целое число, т.е. 56 и умножаем его на 32. Получится 1792. 1811-1792=19 Это и есть остаток от целочисленного деления.
+10 # Евгений 09.01.2015 13:08
Этому можно придать и иной смысл. Достато чно вспомнить мультфильм «тридцать восемь попугаев. Числ о,которым делят,становить ся мерой числа которое делят. И остаток 0.59375 выражает часть числа 32. Так что достаточно умножить 32 на 0.59375 что бы получилось искомые 19.
-179 # яю 23.04.2012 12:14
Забудь про паскаль.
И задачу тебе не нужно решать.
А если хочешь научиться, то начинай с Ассемблера.
+39 # Нео 02.12.2012 13:08
-27 оценка.
вижу никому не нравиться Ассамблер
+29 # Антон 23.02.2013 14:00
Ну просто обсуждается именно паскаль, а не ассемблер, поэтому и минусуют, что не по теме
+6 # alex 30.06.2012 14:04
🙂
8 строка: C := trunc(A/B);
10 cстрока: C := A — B * trunc(A/B);
-8 # помогите 28.01.2013 19:21
помогите решить задачу:дано 2 значное число,переверни те его справа налево.Допучсти м 32 ответ должен быть 23. или дано 78 ответ 87 заранее спосибо. )
+4 # Антон 23.02.2013 14:35
Program pr1;
var
x, y1, y2, y: integer;
begin
write (‘Введите двухзначное число: ‘);
readln (x);
y1:=(x mod 10)*10;
y2:=x div 10;
y:=y1+y2;
write (‘Число-перевёр тыш: ‘, y);
readln;
end.
-5 # Вадим 22.11.2015 06:30
А не легче в 7,8 и 9 строках сделать так: y1:=x div 10; y2:=x mod 10; writeln (y2,y1);
+4 # VladiMir 08.04.2015 19:38
uses
SysUtils;
var a,b: integer;
n: word;
begin
readln(n);
a:=n mod 10;
n:= n div 10;
b:=n mod 10;
n:= n div 10;
n:=a*10+b;
writeln(n);
readln;
-14 # dim 16.02.2013 12:43
program prog1;
uses crt;
begin
write (‘введите двухзначное число. ‘);
read(x);
z:=10;
y:=x div z;
c:=x mod z;
writeln (c,y);
readln
end.
+1 # иришка* 18.02.2013 12:38
ребяята подскажите пожалуйста !очень надо как из числа 5264 получить число 2 типа третье от конца число помогите пожалуйста
-5 # Антон 23.02.2013 12:18
Program pr1;
var
x, y: integer;
begin
write (‘Введите число: ‘);
readln (x); //вводим 5264
y:=(x div 100)-(((x div 100) div 10)*10);
write (‘Третья цифра справа ‘, y);
end.
Программа всегда будет говорить, какая цифра стоит третьей
-4 # Антон 23.02.2013 13:58
Кстати, перед «end.» надо добавить «readln;», а то после вывода результата программа тут же закроется
0 # Виталий 16.11.2017 13:31
a:=a div 10;
b:=a div 10;
a:=a div 10;
b:=a mod 10;
writeln(b);
0 # Alexandr 19.02.2013 11:27
# Irzorg
Вот тебе схема как это делать в дальнейшем:
Допустим,что нам даны два числа x и y;
1)X mod Y=F;-Нам нужно узнать,что же за число получится при вычислении остатка от целочисленного деления;
2)X div Y=Z;Z-это результат целочисленного деления;
3)Z*Y=G;G-число,которое получилось в результате умножения результата целочисленного деления на число Y(Y дан нам в исходном выражении);
4)X-G=F;Где F конечный результат.
Надеюсь,что помог тебе.
-3 # ivan 20.03.2013 16:32
подсчитал все значения,на экран нужно вывести каждое двадцатое число,подскажит е пожалуйста
+1 # katya 21.03.2013 17:25
помогите решить задачу.
дано два цэлых числа: A, B. проверить истинное ли выражение » Каждое ис чисел А,В — непарное»
+2 # Casil 16.03.2018 10:40
Boolean4. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A > 2 и B ≤ 3».
var
A, B: integer;
begin
write(‘Введите A и B: ‘);
read(A,B);
writeln(‘Справе дливы неравенства A > 2 и B ≤ 3 — ‘,(A > 2) and (B = 0) or (B дливо двойное неравенство A B) and (B > C)));
end.
Boolean8. Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное».
var
A, B: integer;
begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Каждое из чисел A и B нечетное — ‘, (A mod 2 0) and (B mod 2 0));
end.
Boolean9. Даны два целых числа: A, B. Проверить истинность высказывания: «Хотя бы одно из чисел A и B нечетное».
var
A, B: integer;
begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Хотя бы одно из чисел A и B нечетное — ‘, (A mod 2 0) or (B mod 2 0));
end.
Boolean10°. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».
var
A, B: integer;
begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Хотя бы одно из чисел A и B нечетное — ‘, (A mod 2 0) xor (B mod 2 0));
end.
Boolean11. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».
var
A, B: integer;
C: boolean;
begin
write(‘Введите A, B: ‘);
read(A,B);
C := ((A mod 2 0) and (B mod 2 0)) or ((A mod 2 = 0) and (B mod 2 = 0));
writeln(‘Числа A и B имеют одинаковую четность — ‘, C);
end.
Boolean12. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Каждое из чисел A, B, C положительное».
var
A, B, C: integer;
begin
write(‘Введите A, B и C: ‘);
read(A,B,C);
writeln(‘Каждое из чисел A, B, C положительное — ‘,(A > 0) and (B > 0) and (C > 0));
end.
Источник: mojainformatika.ru