Константы в Pascal.

Иногда, бывает так, что у нас в программе встречаются величины, которые не меняются в процессе выполнения программы (т.е. фактически они противоположность переменных). Такие величины называются константами. Константы указываются в специальном ...

Ввод символов с клавиатуры.

Ввод символов с клавиатуры почти не отличается от ввода чисел с клавиатуры. Для того чтобы ввести какие-то символы (буквы, знаки и т.д.) с клавиатуры необходимо для переменных использовать символьный тип данных Char.

Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

Циклы и массивы

Индексы одномерного массива.

Существует класс задач, в которых индекс массива используется для формализации вычислительного процесса путем сведения исходных формул к конечным суммам и произведениям. Преобразованные таким образом ...

Программирование циклов. Оператор безусловного перехода.

Цикл — это последовательность операторов, которая может выполняться более одного раза. В языке Паскаль разработано три механизма для конструирования циклов, использующих операторы FOR, WHILE, REPEAT.

...

Уроки Паскаль

Помимо операций умножения и сложения, над целочисленными переменными производятся операции 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
Теперь запишем нашу программу в Паскале и и запустим ее.

div mod

div mod.



Дополнение к материалу.

Правила приоритета при выполнении операций в Паскале.

  • Сначала выполняются действия над переменными, которые стоят в скобках.
  • Затем вычисляются функции.
  • Затем умножение и деление.
  • Затем сложение и вычитание.

Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.

Комментарии  

 
+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 Это и есть остаток от целочисленного деления.
Ответить
 
 
+9 # Евгений 09.01.2015 13:08
Этому можно придать и иной смысл...Достато чно вспомнить мультфильм "тридцать восемь попугаев...Числ о,которым делят,становить ся мерой числа которое делят...И остаток 0.59375 выражает часть числа 32!...Так что достаточно умножить 32 на 0.59375 что бы получилось искомые 19.
Ответить
 
 
-182 # яю 23.04.2012 12:14
Забудь про паскаль.
И задачу тебе не нужно решать.
А если хочешь научиться, то начинай с Ассемблера.
Ответить
 
 
+40 # Нео 02.12.2012 13:08
-27 оценка...
вижу никому не нравиться Ассамблер :lol:
Ответить
 
 
+31 # Антон 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);
Ответить
 
 
-10 # помогите 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.
Ответить
 
 
-6 # Вадим 22.11.2015 06:30
А не легче в 7,8 и 9 строках сделать так: y1:=x div 10; y2:=x mod 10; writeln (y2,y1); 8) :lol:
Ответить
 
 
+3 # VladiMir 08.04.2015 19:38
program Project4;

{$APPTYPE CONSOLE}

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;

end.
Ответить
 
 
-14 # dim 16.02.2013 12:43
program prog1;
uses crt;

var x,c,z,y:integer;

begin
write ('введите двухзначное число. ');
read(x);
z:=10;
:-*

y:=x div z;
c:=x mod z;
writeln (c,y);
readln
end.
Ответить
 
 
0 # иришка* 18.02.2013 12:38
ребяята подскажите пожалуйста !очень надо как из числа 5264 получить число 2 типа третье от конца число помогите пожалуйста :cry:
Ответить
 
 
-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.

Программа всегда будет говорить, какая цифра стоит третьей
Ответить
 
 
-5 # Антон 23.02.2013 13:58
Кстати, перед "end." надо добавить "readln;", а то после вывода результата программа тут же закроется
Ответить
 
 
0 # Виталий 16.11.2017 13:31
var

a,b,i:integer;

begin

readln(a);

a:=a div 10;
b:=a div 10;
a:=a div 10;
b:=a mod 10;
writeln(b);

end.
Ответить
 
 
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 конечный результат.
Надеюсь,что помог тебе.
Ответить
 
 
-4 # 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 < -2));
end.
Boolean6. Даны три целых числа: 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 < B) and (B < C));
end.
Boolean7°. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Число B находится между числами A и C».

var
A, B, C: integer;

begin
write('Введите A, B и C: ');
read(A,B,C);
writeln('Число B находится между числами A и C - ',((A < B) and (B < C)) or ((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.
Ответить
 
 
-7 # katya 21.03.2013 20:02
спасибо,но я уже разобралась сама)
Ответить
 
 
-3 # graffiti 29.03.2013 13:23
Помогите решить задачу!
Заданы три различных числа k,l,m/Сколько нечётных чисел среди них,если таких чисел нет-выдать сообщение на экран
Ответить
 
 
+1 # Прог 19.03.2014 07:25
program che;
const k=10; // Количество чисел сколько надо
var d: array [1..k] of integer;
l, m: integer;
begin
writeln('Введит е k чисел');
for i:= 1 to k do
read (d[l]);

for l:= 1 to k do
write(d[l]:3); writeln;

s1:=0;
for l:=1 to k do
if d[l] mod 2=1 then
begin
s1:=s1+d[l];
end;
writeln('Cumma:=',s1);
end.
Ответить
 
 
-4 # Гульмира 15.04.2014 15:28
сколько сушествует 2013 значных чисел таких, что любое двузначное число, образованное парами соседних цифр, делиться на 17 или на 23?? помогоите составит программу!!!!!! :oops:
Ответить
 
 
+2 # Casil 16.03.2018 13:44
НАчнем считать
Сначала выпишем все двух значные числа, которые делятся на 17 и на 23.
На 17: 17, 34, 51, 68, 85.
На 23: 23, 46, 69, 92.
Начнем составлять возможные концовки чисел:
6
68
685
6851
68517 - дальше никакую цифру всунуть нельзя.
6 - такое уже было.
69
692
6923
69234
692346 - но это то же самое, что просто 6, т. к., если двигаться влево, то мы получим последовательно сть из цифр ...692346923469 234... до нужного нам кол-ва.
И того получается, что у нас выйдут такие числа.
...69234692346
...692346923468
...692346923468 5
...692346923468 51
...692346923468 517
...692346923469
...692346923469 2
...692346923469 23
...692346923469 234
9 чисел. Кстати, тут неважно 2013-значное оно или какое-то другое. Одинаковое кол-во получится и с пятизначным и с 1000000-значным . Удачи.
Ответить
 
 
+1 # илья 20.11.2014 18:05
помогите написать программу на вывод чётных и нечётных чисел массива
Ответить
 
 
0 # Casil 16.03.2018 13:45
for i := 1 to n do
if not(odd(x)) then writeln(x);
for i := n downto 1 do
if odd(x) then writeln(x);


еше один вариант :
for i := 1 to n do
if (x mod 2 = 0) then writeln(x);
for i := n downto 1 do
if not(x mod 2 = 0) then writeln(x);
Ответить
 
 
-4 # nuri 21.11.2014 12:58
Укажите основание системы счисления, в которой число 126 с осн 10 оканчивается на 40
Ответить
 
 
0 # Casil 16.03.2018 13:47
Основания систем счисления д. б. больше З-ной, т. к. запись числа оканчивается на 3.Для перевода числа в другую систему счисления надо это число последовательно делить на основание, причем в нашем случае первый остаток д. б. равен 3-м. Этому условию удовлетворяет 4-ная (4*9=36),6-ная (6*6=36).9-ная (9*4=36),12-ная (12*3=36),и 36-ная (36*1=36). Число 22 (3)=8(10) и 222(3)=26(10)


- Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 39 оканчиваются на 3.

- Укажите через запятую в порядке возрастания все десятичные числа, не превосходящие 26, запись которых в троичной системе счисления оканчивается на 22.
Ответить
 
 
0 # nuri 21.11.2014 12:59
Помогите пожалуйста решить задачу
Ответить
 
 
+1 # Tom 02.12.2014 15:17
Как выразить сумму делителей какого-то числа?
Ответить
 
 
+2 # Tom 02.12.2014 15:21
Точнее, как найти делители x-числа? Подскажите, пожалуйста :sad:
Ответить
 
 
+2 # лажа 03.12.2014 07:11
Помогите пожалуйста: нужно вывести на экран количество двухзначных нечетных чисел!!! Оченб прошу, помоите!
Ответить
 
 
+1 # SovietChekist 18.12.2014 09:48
Pascal ABC ругается, когда пишу
c:=a div b;
c:=a mod b;
В чем проблема
Ответить
 
 
+4 # Каролина 10.02.2016 19:11
Нельзя чтоб повторялись переменные присвой a mod b например к переменной f и твоя проблема решена
Ответить
 
 
+3 # Marina 22.12.2014 16:42
как решить 35-17div4
Ответить
 
 
0 # ира 04.02.2015 18:16
Х MOD 5 = Х DIV5

С какими значениями Х следующие равенства будут верны?
Ответить
 
 
0 # михаил 11.02.2015 17:13
a:=125; b:=25; c:=12; if a div 25=0 then if a mod 12=0 then c:=b div (a mod c) esle c:=a div (b mod c) ;-)
Ответить
 
 
+2 # Denis 15.03.2015 14:12
Как составить программу, чтобы оно делилось на 5 и было 4х значное, при этом выводилось удача, а если не проходило неудача?
Ответить
 
 
+2 # Евгений 25.04.2015 14:02
Помогите решить задачу. Дано число a. Если число а делится на 2 без остатка вывести 'делится на 2', если нет - 'не делитcя'.
Ответить
 
 
+3 # Casil 16.03.2018 13:48
var a,b:integer;
begin
writeln('Введит е два числа для проверки');
readln(a,b);
if a mod b=0 then writeln('Делитс я')
else writeln('Не делится');
end.
Ответить
 
 
+2 # Помогите решить. 04.10.2015 08:40
a b ab-c
- * - - ____
b d cd
Ответить
 
 
+2 # Помогите решить. 04.10.2015 08:41
a/b * b/d - ab-c/cd
Ответить
 
 
+2 # Casil 16.03.2018 13:49
var
f, a, b, c, d: real;

begin
Write('A='); Readln(a);
Write('B='); Readln(b);
Write('C='); Readln(c);
Write('D='); Readln(d);
f := a / b * b / d - (a * b - c) / c * d;
Writeln('F=', f:0:5);
Readln
end.
Ответить
 
 
+2 # Аяс 13.10.2015 15:48
4. Переставить в исходном четырёхзначном числе первые две цифры и последние две цифры местами. Например: Входное число 1234, выходное 3412.
Ответить
 
 
+2 # Casil 16.03.2018 13:50
var
s: string;

begin
read(s);
if length(s) >= 4 then
writeln(s[3] + s[4] + s[1] + s[2]);
end.
Ответить
 
 
+3 # Марина 05.11.2015 07:58
Помогите решить 56 div 3 =
Ответить
 
 
+2 # Каролина 10.02.2016 19:06
Марина равно 18
Ответить
 
 
+3 # Casil 16.03.2018 13:57
z := 55 div 6

z будет равно 9. Запомните ! При использовании оператора div дробная часть будет отброшена!
Ответить
 
 
-1 # Дмитрий 14.11.2015 07:53
Натуральное число N Маша поделила с остатком на все натуральные числа от 1 до M. Какой самый большой остаток у нее получился?
вводится:5 4
выводится:2
помогите срочно!!!!!!
Ответить
 
 
+1 # Casil 16.03.2018 13:58
Число 2015 Маша поделила с остатком на все числа от 1 до 1000. Какой самый большой остаток у неё получился?
Пусть q -- неполное частное, а r -- остаток от деления 2015 на n, где 1≤n≤1000. Ясно, что q≥2, так как 2015/1000>2. Про остаток мы знаем, что r≤n−1, то есть 2015=nq+r≥q(r+1 )+r≥2(r+1)+r=3r +2. Следовательно, r≤671. Равенство достигается при делении на n=r+1=672. Поэтому самый большой остаток равен 671.
Ответить
 
 
+3 # Олеся 07.12.2015 19:32
помогите решить задачку плиииз) дано целое двухзначное число определить можно ли цифру 10 разделить на цифру 1 без остатка
Ответить
 
 
+4 # Casil 16.03.2018 13:59
var a,n:integer;
begin
readln(n);
a:=(n mod 100) div 10;
writeln(a);
end.
Ответить
 
 
+2 # ХуЛаЛа 13.01.2016 19:52
y= x mod 5 + x div 3
z= y*y mod 2
Как решить? :o
Ответить
 
 
+5 # Каролина 10.02.2016 19:03
Можно ли производить операции mod и div
над переменными,кот орые описаны как real.
Ответить
 
 
+4 # Нуб 11.04.2016 15:57
a и b - рандомные числа. Как сделать чтобы для b присваивалось такое значение, которое делится на a без остатка? :sigh:
Ответить
 
 
+2 # Нуб 11.04.2016 15:58
Помогите пожалуйста! :o
Ответить
 
 
+3 # Casil 16.03.2018 14:05
if n mod 2=0 then.. {число делится на 2}
if (n mod 2=0)and(n mod 3=0)and(n mod 5=0) then.. {число делится и на 2, и на 3 и на 5}
{или}
if n mod(2*3*5)=0 then..
Ответить
 
 
+3 # ислам 19.05.2016 14:01
program islam;
uses crt;
var x,c,y:integer;
begin;
clrscr;
writeln('введите число');
readln(x);
writeln('умножить на...');
readln(y);
c:=x * y;
writeln('=',c);
end.
Ответить
 
 
+4 # Zizy 18.11.2016 20:59
А для чого записувати (uses crt;)
Ответить
 
 
-1 # Настяни энаси 23.11.2016 05:24
энайни ами
Ответить
 
 
+3 # лена 06.12.2016 09:46
помогите сделать задачу.
тип что б с числа выкидало цифру 2
Ответить
 
 
-2 # Булат 19.12.2016 15:58
:dream
Ответить
 
 
+3 # semion57829@gmail.co 10.10.2017 17:33
Сколько чисел от N до C делятся на 3
Ответить
 
 
+2 # Casil 16.03.2018 10:44
begin
WriteLn(100 div 3,' чисел кратных 3');
ReadLn;
end.
Ответить
 
 
+4 # Анатолий 25.10.2017 22:20
Ну и получается, что фактически мы выполняем одну и ту же операцию дважды. Паскаль не годится! У него нет операции деления нацело с остатком. А у всех процессоров есть... На Си есть функция div ldiv но она не работает с беззнаковыми типами.
Получается я должен писать либо на ассемблере, либо на Pyton. Там есть. Но на Pyton не имеет беззнаковых типов. Однако Pyton не имеет фиксированной размерности. Там выполняются вычисление с неограниченной точностью. Через библиотеку конечно ибо процессор так не умеет.
Однако для пользователя это выглядит так, как буддто вы непосредственно работатете с автоматически увеличивающими размер числами и повышающими точность если надо. Но если вы хотите такую операцию не на Pyton, то вам придётся писать ан ассемблере.
Ответить
 
 
+1 # Семен 09.03.2018 10:29
Здорово
Ответить
 
 
+3 # Casil 16.03.2018 10:42
program m1;
uses crt;
var x,del:integer;
begin
write('Введите x: '); readln(x);
write('Делители: ');
for del:=1 to x do
if (x mod del)=0 then
write(del,' ');
writeln;
end.
Ответить
 
 
+1 # Василий 29.09.2021 06:20
надо написать программу без div
типо вычитание использовать а я не могу, понимаю но не могу
Ответить
 
 
+4 # Друзья 29.09.2021 06:21
Можно не церемониться и написать так: Read(a,b); {c:=0;}
if a*bb do begin
Dec(a,b); Inc(c);
end;
WriteLn('частно е: ',s*c,', остаток: ',s*a);
Ответить
 
 
+1 # человек 21.12.2021 11:20
написать программу суммы чисел второй стони, вот пример но немного другой, помогите пж

program summa;
var x,y:integer;
begin
writeln ('Суммы чисел первой сотни,которые делятся на 3');
y:=0;
for x:=1 to 99 do
Begin
if (x)mod(3)=0 then y:=y+x;
end;
writeln ('Сумма y=',y);
end.
:sad:
Ответить
 
 
+5 # EVG 09.02.2022 14:56
//1
Var
n,i,s:integer;
begin
n:=0;
for i:=1 to 100 do
begin
n:=n+3;
s:=s+n;
end;
writeln(s);
end.

//2
Var
i:integer;
r:integer;
begin
for i:=500 to 700 do
r:=r+i;
writeln(r);
end.
Ответить
 
 
+3 # ксения 16.03.2022 15:43
var a c: integer;
begin
a:= 2154; c:= a div 100; a:= a mod 100; c:= a-c;
writeln (c)
end.
Ответить
 
 
+2 # Ivan 13.02.2023 07:41
Хороший пример
Ответить
 

Добавить комментарий

   ГлавнаяПаскальУроки ПаскальDiv, Mod, сложение, вычитание в Pascal.