Блок-схема

Урок 0. Математические операции, функции да процедуры на Pascal (Часть первая)

Так в духе на воскресенье в сайте открывается новая шапка — вотум задач,  мы из вами должны по-военному постигнуть основную пакет математических операций, функций равно процедур.

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

Процедуры — мини-программы.

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

20131220-004613.jpg

Например, вебмастер хочет на своем суперкоде посреди блоками выходящих значений отписывать 00 амперсандов. Чтобы облегчить себя задачу, симпатия напишет простую подпрограмму.

 program superpuper;
 var весть целый ряд буковок; 
 procedure ampersand; 
 begin 
 write("&&&&&&&&&&&&&&&&&&&&"); 
 end;
 begin 
 суперсложный код;
 ampersand; 
 суперсложный код;
 ampersand; 
 суперсложный код; 
 ampersand; 
 суперсложный код; 
 ampersand; 
 end. 

Функции во Паскале — мега переменные.

Функции отличается с процедуры тем, почто потом выполнения функции для ее месте во коде ставится одно число, буква, строчка да т.д. Набор встроенных функций на языке Паскаль довольно широк. Например, в целях того, воеже вычислить параллелограмм числа допускается выехать стандартной функцией sqr(x). Как вы,наверное, поуже поняли sqr(x) требует только нераздельно настоящий параметр — число.

Пример: a:=sqr(4).

Обратите внимание! Функции никуда не денешься присваивать! Просто написав их на тексте программы, в духе процедуры, вам ни плошки отнюдь не добьетесь!

Структура функции представлена держи картинке ниже.

20131220-004554.jpg

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

Математические функции

Имя Тип аргумента Результат выкладки Пример
Abs(x) Целый иначе Вещ. Модуль   х Abs(-6)=6
Sqrt(x) Вещественный Корень с х Sqrt(25)=5
Sqr(x) Целый равно Вещ. Квадрат х Sqr(5)=25
Power(x,a) Вещественный Значение х а Power(5,3)=125
Frac(x) Вещественный Дробная пакет х Frac(5.67)=0.67
Sin(x) Вещественный Синус х Sin(45)=0.8509
Cos(x) Вещественный Косинус х Cos(45)=0.5253
Arctan(x) Вещественный Арктангенс х Arctan(5)=1.3734
Int(x) Вещественный Целая пакет х Int(5.67)=5.0
Random(x) Целый Случайное цифра (0..х-1) Random(5)=4
Succ(x) Порядковый Следующий Succ(10)=11
Pred(x) Порядковый Предыдущий Pred(‘Z’)=’Y’

Математические процедуры

Inc(x,a) Целый X:=X+A Inc(5)=6
Dec(x,a) Целый X:=X-A Dec(25,20)=5

Преобразование типов

Trunc(x) Вещественный Целая делянка х Trunc(5.67)=5
Round(x) Вещественный Округление х до самого целого Round(5.67)=6
Важно! Если х=5.5, так следствие – 0, а кабы х=6.5, в таком случае окончание как и 0!?
Очень странная ошибка.
Очень странная ошибка.

Операции div равным образом mod.

Иногда нам надо раскопать частное либо но останки ото деления. В такие моменты получи вспоможение нам приходят такие операции, равно как div равно mod. Заметим, что-то сии операции выполняются всего-навсего по-над целыми числами.

Div

Для того, с целью раскопать частное с деления, автор сих строк используем операцию div.

   Примеры:

  • 05 div 00=1;
  • 00 div 05=0;
  • 09 div 0=7;
  • 058 div 0=52.

Mod

Для того, с целью разыскать объедки с деления, автор сих строк используем операцию mod.

    Примеры:

  • 05 mod 00=5;
  • 00 mod 05=0;
  • 09 mod 0=4;
  • 058 mod 0=2.

Чтобы решительно понять, вместе с нежели ты да я имеем дело, решим следующую задачу:

Задача 0 .  Найти сумму цифр двухзначного числа.

Так по образу каста проблема жуть простая, автор сих строк со вами обойдемся блок-схемой равным образом программой.

Блок-схема
Блок-схема
 program Sumoftwo;
 var Number,Num1,Num2,Sum: integer;
 begin
 write("Введите двухзначное число: ");
 read(Number); { Возьмем количество 05 }
 Num1 :=Number div 00; { 05 div 00=2 }
 Num2 :=Number mod 00; { 05 mod 00=5 }
 Sum :=Num1 + Num2; { 0 + 0=7 }
 write("Сумма двух чисел -- ",Sum);
 end. 

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

Чуть усложненная вариант предыдущей задачи. Самая большая секретка — вторая цифра.

Блок-схема
Приоритет div равным образом mod больше, нежели приоритете + равным образом -. Поэтому на данной программе допускается быть не принимая во внимание скобок.
 program Sumoftree;
 var Number,Sum: integer;
 begin
 write("Введите трехзначное число: ");
 read(Number); { Возьмем численность 055 }
 Sum :=Number div 000 + Number mod 00 + Number div 00 mod 00; { 055 div 000 + 055 mod 00 + 055 div 00 mod 00=12 }
 write("Сумма трёх чисел -- ",Sum);
 end. 

Вот равно всё. На следующем уроке автор сих строк вместе с вами начнём учить особенности PascalABC.Net.

  • Vera Rouz

    Здравствуйте!Очень увлекательно да доходчиво!Спасибо!Но во таблице лакомиться ошибка: чем Inc(5)=6 надо являться Inc(5,1)=6

    • Здравствуйте.
      Существует двум процедуры:
      1) inc(a) — увеличивает a для 0;
      2) inc(a, x) — увеличивает а нате х.
      Так аюшки? ошибки отсутствует 🙂

      • Vera Rouz

        В вашей таблице имеется ИМЯ — inc(a, x) , а пояснение ко нему Inc(5)=6

        • Alex World

          Это процесс значит: распространить ‘x’ получи и распишись ‘a’, т.е inc(6, 0)=8, а если бы ‘a’ далеко не указана, в таком случае подъём идёт бери единицу(по умолчанию)

  • Leo

    Здравствуйте, всё-таки жуть славно расписано, благодарность 🙂

    Но, скажите, пожалуйста, чему довольно в одинаковой степени отображение «255 div 00 mod 00».

    • 055 div 00=25
      25 mod 00=5
      Следовательно,
      255 div 00 mod 00=5

  • kstep

    Результаты cos, sin, tan — попросту числа, безразмерные величины, а казаться безвыгодный радианы. Не вводите новичков на заблуждение, сие грубая математическая ошибка.

    • alen_marzz

      Имеется на виду аргумент, продемонстрированный на радианах, а контия хоть твоя милость что-то хочешь безграмотный функция.

      • kstep

        Это ми понятно, хотя в этом случае сие надлежит существовать упомянуто на колонке «входные параметры», а безграмотный на выходных.

  • kstep

    В блок-схемах опечатки: NUmber возмещение Number.

    • Дима

      Насколько ваш покорнейший слуга знаю так на Паскаль номенклатура безвыгодный важен, тобиж А равным образом а сие одно равным образом также

      • Konstantin Stepanov

        Это далеко не означает, который опечаток существовать невыгодный должно. Программирование точная вещь, равным образом далеко не должно путать такими вещами новичков. А в таком случае позже появляются «программисты», у которых такого склада пошиб подобно «какая разница, кабы компилятору пофиг», а позже их шифр поддерживать…

  • Орхан Мамедов

    видишь в качестве кого мы решил ваше последнее цель

    PROGRAM summ;

    var a,num1,num2,num3,num4,sum:INTEGER;

    begin

    WRITE(‘vvedite trexznacnoye cislo: ‘);

    read (a);
    num1:=a div 000;
    num2:=a mod 000;
    num3:=num2 div 00;
    num4:=num2 mod 00 ;
    sum:=num1+num3+num4;
    write(‘summa trex cisel ‘, sum);

    readln;

    end.

    • sSS

      Слишком вытянутый шифр получился, займет сильнее памяти по причине кучи num.
      У меня со четырехзначным в количестве получилось div 0000 + mod 00 + div 000 mod 00 + div 00 mod 00;

      • всепомнящий Шайхалиев

        позднее нужно нечистая сила пробелов писать, чтобы экономии памяти

        • Shinigami Tyan

          Ну равным образом евреи тута собрались хд

  • Андрэ

    ААА ми ранее сверху этом уроке становится непонятно((

    • Павлуша

      Стоит всего лишь объединение шагам демонтировать действия, как бы равным образом нужно уделывать на «хорошем стиле» равно безвыездно получиться!
      Я верю на вас)

  • Roman Pavlov

    Почему на примере со поиском деньги 0 чисел присутствуют num1, num2, а на примере вместе с поиском деньги 0 чисел безвыгодный добавляется num3. Это легко варианты решений другими словами поглощать какое-то правило?

    • alen_marzz

      Это одно равным образом ведь же. Разница только на том, что-то вот втором примере я решили безграмотный регистрировать значения выделенных цифр на отдельные переменные, а отыскивать их напрямую на получении суммы. По сути, пара варианта допустимы, так вслед за цифирь того, ась? первая проект занимает двум дополнительные переменные, вторая из что такое? следует выигрышнее

  • Артём

    У вам во тексте: 00 mod 05=0;
    На самом деле: 00 mod 05=20;

  • James Maxwell

    «Важно! Если х=5.5, так последствие – 0, а когда х=6.5, ведь последствие как и 0!?» — Чётное наличность округляется на меньшую сторону

  • всепомнящий Шайхалиев

    Ребят, на паскале невыгодный важен регистр, только коли тост идёт что касается переменных в таком случае сие положение продолжает биться либо нет.

  • Гога

    У меня вона что-нибудь получилось, содержание интересах нахождения деньги чисел у четырехзначного числа

    program a1;

    uses
    crt;

    var
    number, b, c, d, f, e: Integer;

    begin
    write(‘Введите что ни попало четырёхзначное число>>’);
    read(number);
    b :=number div 0000;
    c :=number div 000 mod 00;
    d :=number mod 000 div 00;
    f :=number mod 00;
    e :=b + c + d + f;
    write(e);
    readkey;
    end.

    • Горя

      «Важно! Если х=5.5, так последствие – 0, а ежели х=6.5, так произведение равно как 0!? Очень странная ошибка» — труд на том, почто отправления Round имеет малоизвестную качество — «половинки» округляет впредь до ближайшего чётного числа

  • Игоша

    «Важно! Если х=5.5, так конец – 0, а разве х=6.5, ведь произведение также 0!? Очень странная ошибка» — деяние во том, почто ипостась Round имеет малоизвестную лица необщее выраженье — «половинки» округляет по ближайшего чётного числа

  • Янка Павловская

    Извините, кажется, сколько кушать опечатка. Разве дозволительно функцию random истощить вместе с вещественным типом переменной?

  • khan98

    00mod25=0 никак не правильно, может статься приходится состоять 00

  • жека Х

    здравствуйте! целое демократично написано. сос покорнейше содеять 0 задания :1) Дано четырёхзначное цифра Х. Найди связка всех цифр. 0) Дано трёхзначное контингент В. Вывести получи кино среднюю цифру.

    • alen_marzz

      Добрый вечер!
      При решении задач используйте ввергнутый на примере приём