MyPascal http://mypascal.ru/ Блог Sun, 12 Jan 2014 14:41:36 GMT uCoz Web-Service Числа в паскале Многие начинающие программисты задаются подобный вопросом : "Какие операции можно совершать с числами в языке программирования паскаль ?". В данном уроке мы подробно ответим на этот вопрос. Многие начинающие программисты задаются подобный вопросом : "Какие операции можно совершать с числами в языке программирования паскаль ?". В данном уроке мы подробно ответим на этот вопрос. <br /> <h2>Арифметические операции</h2>Начнем , пожалуй , с самого простого - арифметические операции с <strong>числами в паскале</strong>. В паскаль встроены многие привычные нам арифметические операции ( Сложение , вычитание , умножение , деление и т.п ). <br /><br /> Как же осуществляются подобные операции с числами ?. Давайте разберем это на примере исходника одной программы. <br /> <!--uzcode--><div class="bbCodeBlock"><div class="bbCodeName" style="padding-left:5px;font-weight:bold;font-size:7pt">Код</div><div class="codeMessage" style="border:1px inset;max-height:200px;overflow:auto;height:expression(this.scrollHeight<5?this.style.height:scrollHeight>200?'200px':''+(this.scrollHeight+5)+'px');"><!--uzc-->program mypascal; <br /> var <br /> a,b:integer; <br /> c:real; <br /> begin <br /><br /> a:= 7; <br /> b:= 4; <br /> <br /> a:= a - b; // a-b = 7 - 4 = 3 , следовательно a = 3 , b = 4 , c = 0 <br /> b:= a + b; // a+b = 3 + 4 = 7 , a = 3 , b = 7 , c = 0 <br /> <br /> a:= b * 2; // b*2 = 7 * 2 = 14 , a = 14 , b = 7 , c = 0 <br /> c:= a / b; // a/b = 14 / 7 = 2 , a = 14 , b = 7 , c = 2 <br /> <br /> writeln(a,' ',b,' ',c&#41;; <br /><br /> end. <br /> <!--/uzc--></div></div><!--/uzcode--> <br /> Результатом выполнения данной программы будет вывод на экран трех чисел 14 7 2. Разберемся в том , как это работает. <br /><br /> В начале программы мы объявляем 2 целочисленные ( integer ) переменные "a" и "b" , а также 1 переменную "c" вещественного ( real ) типа. <br /><br /> Зачем нам нужна вещественная переменная ? Для записи результата деления целочисленная переменная не подходит , так как у нас получается дробь , а не целое число. <br /><br /> Теперь мы присваиваем переменной "a" значение 7 , а переменной "b" значение 3 <br /> . Переменную "c" при этом оставляем нулевой ( она нам пока не понадобится ). <br /><br /> Далее (в блоке begin end) мы расписываем арифметические операции с нашими числами. Обратите внимание на то , что после символов // идет комментарий , который не компилируется программой. <br /><br /> Запомните : Строка <b>a:= a - b;</b> выглядит так a:= 7 - 4; , а не так 7:= 7 - 4; <br /> <h2>Другие операции с числами</h2>В паскале предусмотрены и многие другие операции с числами. Давайте разберем самые популярные из них. <br /><br /> <b>1. </b>Как найти квадрат числа в паскале ? <br /><br /> Для нахождения квадрата числа в паскале предусмотрена функция sqr(x) , где x - число. <br /> Пример : <br /> <div class="quote">a:= sqr(5);</div> <br /> <u>Результат</u> : переменной "а" присваивается значение 25. <br /><br /> <b>2. </b>Как найти корень <strong>числа в паскале</strong> ? <br /><br /> Для нахождения корня числа в паскале предусмотрена функция sqrt(x) , где x - число. <br /> Пример : <br /> <div class="quote">a:= sqrt(25);</div> <br /> <u>Результат</u> : переменной "а" присваивается значение 5. <br /><br /> <b>3. </b>Как округлить число в паскале ? <br /><br /> Для того , чтобы округлить некоторое число используется операция round(x). <br /> Пример : <br /> <div class="quote">a:= round(9.4);</div> <br /> <u>Результат</u> : переменной "а" присваивается значение 9. <br /><br /> <b>4. </b>Как убрать дробную часть у числа в паскале ? <br /><br /> Для того , чтобы отбросить дробную часть числа используется операция trunc(x). <br /> Пример : <br /> <div class="quote">a:= trunc(17.4);</div> <br /> <u>Результат</u> : переменной "а" присваивается значение 25. <br /><br /> <b>5. </b>Как убрать целую часть у числа в паскале ? <br /><br /> Для того , чтобы отбросить целую часть числа используется операция frac(x). <br /> Пример : <br /> <div class="quote">a:= frac(17.2);</div> <br /> <u>Результат</u> : переменной "а" присваивается значение 0.2. <br /><br /> <b>6. </b>Как получить модуль числа в паскале ? <br /><br /> Чтобы получить модуль некоторого числа используется операция abs(x). <br /> Пример : <br /> <div class="quote">a:= abs(-8);</div> <br /> <u>Результат</u> : переменной "а" присваивается значение 8. <br /><br /> Это были самые важные и часто используемые операции в паскале для работы с числами ( переменными ). Найти другие вы можете на <a href="http://mypascal.ru/blog/funkcii_i_operacii_v_paskal/2013-06-22-14" target="_blank" title="читать о других операциях">этой странице</a>. <br /> <h2>Выводы :</h2>Для работы с числами в паскале предусмотрено множество различных операций. Мы можем делать с числами все , что угодно ( складывать , умножать , возводить в квадрат и т.п ). http://mypascal.ru/blog/chisla_v_paskale/2014-01-12-27 denis http://mypascal.ru/blog/chisla_v_paskale/2014-01-12-27 Sun, 12 Jan 2014 14:41:36 GMT Блок схема в паскаль В данной теме мы подробно разберем то , как обозначаются элементы блок-схем. <br /><br /> Эта статья будет полезна тем , кому нужно описывать алгоритм решения задачи блок-схемой. Например школьникам или студентам , в ходе выполнения домашнего задания. В данной теме мы подробно разберем то , как обозначаются элементы блок-схем. <br /><br /> Эта статья будет полезна тем , кому нужно описывать алгоритм решения задачи блок-схемой. Например школьникам или студентам , в ходе выполнения домашнего задания. <br /> <h2>Начало и конец программы</h2><center><img src="http://mypascal.ru/images_files/1/75.png" class="img_news" alt="Овал" title="Овал" /></center> <br /> Фигура-овал обозначает начало и конец программы. Данной геометрической фигурой начинается и заканчивается любая блок-схема. <br /> <h2>Условие</h2><center><img src="http://mypascal.ru/images_files/1/76.png" class="img_news" alt="Ромб" title="Ромб" /></center> <br /> Ромб - это геометрическая фигура , которой обозначают условия в блок-схеме. Например a > b . Ромб имеет две ветви + и - , истинный и ложный результат соответственно. <br /> <h2>Действие</h2><center><img src="http://mypascal.ru/images_files/1/77.png" class="img_news" alt="Прямоугольник" title="Прямоугольник" /></center> <br /> Прямоугольником в блок-схеме обозначают выполнение любых действий кроме ввода и вывода. Например присвоение значения какой-либо переменной ( a:= 4 ). <br /> <h2>Ввод/вывод</h2><center><img src="http://mypascal.ru/images_files/1/78.png" class="img_news" alt="параллелограмм" title="параллелограмм" /></center> <br /> В параллелограмме обозначают ввод или вывод какой-либо информации. <br /> <h2>Цикл с параметром</h2><center><img src="http://mypascal.ru/images_files/1/79.png" class="img_news" alt="6-угольник" title="6-угольник" /></center> <br /> Данной фигурой в блок-схеме обозначают циклы с параметром. Такой цикл выполняется N раз ( от 1 до N ). <br /> <h2>Пример написания блок-схемы</h2> Одно дело знать обозначение блоков , а другое понимать как они составляются. Приведем пример написания полной блок-схемы.<br /><br /><b>Задача</b> : Натуральное число вводится с клавиатуры , определить четное это число или нечетное. <br /><br /> <b>Блок-схема</b> :<br /><center><img src="http://mypascal.ru/images_files/1/83.png" height="450px" width="285" alt="Пример использования блок-схемы" title="Пример использования блок-схемы" /></center> http://mypascal.ru/blog/blok_skhemy_v_paskal/2013-07-13-26 denis http://mypascal.ru/blog/blok_skhemy_v_paskal/2013-07-13-26 Sat, 13 Jul 2013 15:39:10 GMT Функции в паскале Многие программы на языке паскаль занимают достаточно много места на рабочем экране. И из-за этого достаточно сложно найти какой-либо элемент даже в собственной программе. <br /><br /> Поэтому в некоторых случаях будет проще заменить некоторые участки кода блоками ( подпрограммами ). В паскале подобные подпрограммы называют функциями и процедурами. <em>Функции и процедуры</em> в pascal занимают большое и очень важное место. Благодаря им мы сможем решать огромный набор задач , которые будут стоять перед нами в процессе программирования. </br></br> В данном уроке мы рассмотрим такие вопросы , как " как объявить </b>функцию в паскале</b> ? , какие встроеные функции и процедуры есть в паскаль ? Как отличить функцию от процедуры ?. </br> Многие программы на языке паскаль занимают достаточно много места на рабочем экране. И из-за этого достаточно сложно найти какой-либо элемент даже в собственной программе. <br /><br /> Поэтому в некоторых случаях будет проще заменить некоторые участки кода блоками ( подпрограммами ). В паскале подобные подпрограммы называют <strong>функциями</strong> и <strong>процедурами</strong>. <br /><br /> Разумеется , в языке паскаль они предусмотрены не только для того , чтобы отыскать определенный код в программе. Процедуры и функции в паскале отвечают за выполнения многих , более важных вещей. Например для замены нескольких повторяющихся участков кода одним. Или использование рекурсий. <br /><br /> Все процедуры и функции объявляются после блока Var ( Блок , в котором объявляются <u>глобальные переменные</u> ). Вы возможно задаетесь вопросом о том , что такое глобальные переменные ? <br /><br /> Глобальные переменные - это переменные , которые существуют в любом участке программе ( далее будет яснее ). <br /><br /> Давайте рассмотрим структуры подпрограмм. <br /> <h2>Процедуры в паскале :</h2>Структура процедуры в паскале выглядит так : <br /> <center><img src="http://mypascal.ru/images_files/1/73.png" class="img_news" alt="Структура процедуры в паскале" title="Структура процедуры в паскале" /></center> <br /><br /> Как видно по картинке выше , вначале идет слово <strong>procedure</strong>. Далее идет имя процедуры , в нашем случае процедура называется "А". После имени процедуры идет описание получаемых переменных. ( Пример : A(n:integer) или A(n:integer;t:string) ) <br /><br /> Проще говоря , процедура получает переменную , значение которой мы заносим в целочисленную переменную n ( локальная переменная ). Если мы получаем несколько переменных разных типов , то они перечисляются через точку с запятой ; Блок описания получаемых переменных является <u>необязательным</u>. <br /><br /> Во второй строке идет необязательный блок локальных переменных. На ряду с глобальными , существуют и локальные переменные. Локальные переменные отличаются от глобальных тем , что они существуют и работают только внутри своей подпрограммы ( процедуры или функции ). <br /><br /> В третьей строке идет тело процедуры. Тут , я думаю , пояснять ничего не нужно. <br /><br /> Рассмотрим решение такой задачи : Требуется заполнить массив A десятью случайными числами от -10 до 10 , а потом вывести их на экран. Решение выглядит так : <br /> <div class="quote">program mypascal; <br /> uses crt; <br /> var <br /> a: array[1..10] of integer; <br /> procedure readA; <br /> var <br /> i:byte; <br /> begin <br /> <br />randomize;<br /> for i:= 1 to 10 do <br /> a[i]:= random(21)-10; <br /> <br /> end; <br /> procedure writeA; <br /> var <br /> i:byte; <br /> begin <br /> <br /> for i:= 1 to 10 do <br /> write(a[i],' '); <br /> <br /> end; <br /> begin <br /><br /> readA; { Процедура заполняет массив A числами от -10 до 10 } <br /> <br /> writeA; { Процедура выводит массив A на экран } <br /><br /> end.</div> <br /> Как видно из кода программы , в ней существуют 2 процедуры <i>readA</i> и <i>writeA</i> , которые отвечают за наполнение и вывод массива соответственно. <br /><br /> Также можно рассмотреть подобную задачу : Требуется ввести число и вывести его квадрат на экран. Решение выглядит так : <br /> <div class="quote">program mypascal; <br /> var <br /> n:integer; <br /> procedure kv(a:integer); <br /> var <br /> i:byte; <br /> begin <br /> <br /> writeln('Квадрат числа ',a,' = ',sqr(a)); <br /> <br /> end; <br /> begin <br /><br /> write('Введите число : '); <br /> readln(n); <br /> <br /> kv(n); { Процедура выводит на экран квадрат числа N } <br /><br /> end.</div> <br /><br /> Здесь процедура kv получает целочисленную переменную n , значение которой заносится в локальную , целочисленную переменную переменную a. <br /> <h2>Функции в паскале :</h2>Структура функции совсем немного отличается от структуры процедуры. <br /> <center><img src="http://mypascal.ru/images_files/1/74.png" class="img_news" alt="Структура функции в паскале" title="Структура функции в паскале" /></center> <br /><br /> Вы , возможно , уже заметили различие. Главное запомнить , что любая функция должна возвращать какой-либо результат в конце своей работы ( в нашем случае функция возвращает целочисленное значение integer ). <br /><br /> Поэтому , в процессе описания функции , следует обозначать какой тип данных будет возвращаться в неё. <br /><br /> В остальном же , структура функции аналогична процедуре. <br /><br /> Решим задачу : Нужно ввести число и вывести его корень на экран. <br /> <div class="quote">program mypascal; <br /> var <br /> n:integer; <br /> function kor(a:integer):real; <br /> begin <br /> <br /> kor:= sqrt(a); <br /> <br /> end; <br /> begin <br /><br /> write('Введите число : '); <br /> readln(n); <br /> <br /> writeln('Корень из числа ',n,' = ',kor(n)); <br /><br /> end.</div> <br /> Заметьте , что корень может быть нецелым числом , поэтому функция возвращает вещественный результат real. <br /> <h2>Рекурсии :</h2>Рекурсия - это ещё одна большая тема в pascal , которую мы разберем позже. Но стоит рассказать сейчас о том , что под рекурсией часто понимают использование подпрограммы в подпрограмме ( Например : процедуры в процедуре или функции в функции ). <br /><br /> Рассмотреть использование рекурсии можно на подобной задаче : Заполнить массив десятью случайными числами от -10 до 10 и найти первое отрицательное число ( вывести на экран номер отрицательного числа , если есть ). <br /> <div class="quote">program mypascal; <br /> uses <br /> crt; <br /> var <br /> a: array[1..10] of integer; <br /> i:integer; <br /> procedure ser(n:byte); <br /> begin <br /> <br />randomize;<br /> if ( a[n] < 0 ) then <br /> writeln(n,' число отрицательное !') <br /> else <br /> ser(n+1); <br /> <br /> end; <br /> begin <br /><br /> for i:= 1 to 10 do <br /> a[i]:= random(21)-10; <br /> <br /> for i:= 1 to 10 do <br /> write(a[i],' '); <br /> <br /> writeln(); <br /> <br /> ser(1); <br /><br /> end.</div> <br /><br /> В нашем случае процедура ser работает с определенными элементами массива A. Если элемент массива отрицательный , то выводим сообщение , а если нет , то переходим к этой процедуре ( передовая другой элемент ). <br /><br /> Понять это довольно трудно , ещё труднее пересказать. Однако практикуясь все будет понятнее. http://mypascal.ru/blog/procedury_i_funkcii_v_paskale/2013-07-13-25 denis http://mypascal.ru/blog/procedury_i_funkcii_v_paskale/2013-07-13-25 Sat, 13 Jul 2013 13:45:10 GMT Оператор Case в Паскаль Помимо простого условия if в паскале предусмотрен ещё один тип выборки case. Условие if расходится только на две ветви true ( истина ) и false ( ложь ), в отличии от оператора выборки case , в котором можно выбрать несколько ветвей. Помимо простого условия if в паскале предусмотрен ещё один тип выборки case. Условие if расходится только на две ветви true ( истина ) и false ( ложь ), в отличии от оператора выборки case , в котором можно выбрать несколько ветвей. <br /><br /> Если вы читали об обычном <a href="http://mypascal.ru/blog/uslovija_if_then_else_v_paskal/2013-06-09-7" title="Читать про условие if">условии if</a> на нашем сайте , то наверняка отметите некоторую схожесть между if и case. <br /><br /> Давайте рассмотрим оператор case более подробно на этой задаче : Нужно ввести число от 1 до 3 и вывести информацию о том , какое число мы ввели. Попробуем решить её с помощью условия if : <br /> <div class="quote">program mypascal; <br /> var <br /> x:byte; <br /> begin <br /><br /> writeln('Введите число от 1 до 3 :'); <br /> readln(x); <br /><br /> if ( x = 1 ) then <br /> writeln('Вы ввели 1'); <br /> <br /> if ( x = 2 ) then <br /> writeln('Вы ввели 2'); <br /> <br /> if ( x = 3 ) then <br /> writeln('Вы ввели 3'); <br /><br /> end.</div> <br /> В начале программы мы объявляем единственную нужную нам переменную x , в которую будем записывать число вводимое с клавиатуры. Заметьте то , что переменная x имеет диапазон значение с 1 до 3 , поэтому мы можем присвоить ей небольшой тип данных byte ( 0..255 ). <br /><br /> После этого мы вводим переменную с клавиатуры. Далее следуют три условия if , которым соответствуют три разных значение переменной x. <br /><br /> Эту задачу также можно решить с помощью оператора выборки case : <br /> <div class="quote">program mypascal; <br /> var <br /> x:byte; <br /> begin <br /><br /> writeln('Введите число от 1 до 3 :'); <br /> readln(x); <br /> <br /> case x of <br /> 1: writeln('Вы ввели 1'); <br /> 2: writeln('Вы ввели 2'); <br /> 3: writeln('Вы ввели 3') <br /> else <br /> writeln('Вы ввели другое число'); <br /> end; <br /><br /> end.</div> <br /> Отличие в данной программе состоит только в том , что вместо условия if мы используем оператор выборки case. <br /> <center><img src="http://mypascal.ru/images_files/1/72.png" class="img_news" title="Оператор выборки case" alt="Оператор выборки case" /></center> <br /> Оператор case работает так : В начале идет слово "Case". Далее мы пишем переменную , значение которой будем проверять ( в данном случае x ). Далее следует слово of и после него мы записываем возможные значения переменной x . Например строка 1: writeln('X = 1'); обозначает , что если x будет равно 1 , то будет выполнена команда writeln('X = 1'); <br /> Запомните : если вы хотите выполнить несколько команд , то записывайте их в блоке begin end : <br /> <div class="quote">case x of <br /> 1: begin writeln('X = 1'); writeln('Конец'); end; <br /> end;</div> <br /> После записи возможных значений переменной x и того , что они выполняют , идет необязательный блок else ( перед else точка с запятой не ставится ). <br /><br /> В блоке else мы записываем то , что должна выполнить программа если значение переменной x не соответствует ни одному из перечисленных. Например если мы введем число 4 , то будет выполнен блок else ( выведет сообщение "Другое число" ). Если мы хотим выполнить несколько команд в блоке else , их следует записывать между begin end. <br /><br /> В конце оператора выборки case ставим end; <br /> <h2>Особенности оператора case :</h2>Возможные значения переменной можно задавать по разному. До этого мы задавали их так : <br /> <div class="quote">1: writeln('1'); <br /> 2: writeln('2'); <br /> 3: writeln('3');</div> <br /> Теперь давайте рассмотрим такой способ : <br /> <div class="quote">1,2,3: writeln('От 1 до 3');</div> <br /> В данном случае ветка выполнится если x будет равно 1 , 2 или 3. Проще говоря , возможные значения можно перечислять через запятую. <br /><br /> Также подобную ветку можно заменить так : <br /> <div class="quote">1..3: writeln('От 1 до 3');</div> <br /> Эта ветка будет выполнятся , когда переменная x будет равна 1 , 2 или 3. <br /><br /> Рассмотри такую задачу : требуется ввести число от 1 до 6 , если число четное вывести "число четное" ,а если нет , то вывести "число нечетное". Решим эту задачу оператором case. <br /> <div class="quote">program mypascal; <br /> var <br /> x:byte; <br /> begin <br /><br /> writeln('Введите число от 1 до 6 :'); <br /> readln(x); <br /><br /> case x of <br /> 1,3,5: writeln('Число нечетное'); <br /> 2,4,6: writeln('Число четное') <br /> else <br /> writeln('Вы ввели другое число'); <br /> end; <br /><br /> end.</div> http://mypascal.ru/blog/operator_case/2013-07-04-24 denis http://mypascal.ru/blog/operator_case/2013-07-04-24 Thu, 04 Jul 2013 17:29:56 GMT Логический (boolean) тип данных в Паскаль В языке программирования паскаль существует логический тип данных , который позволяет решать разного рода задачи. <br /><br /> Все мелочи и нюансы мы рассмотрим в данной статье. В языке программирования паскаль существует логический тип данных , который позволяет решать разного рода задачи. <br /><br /> Все мелочи и нюансы мы рассмотрим в данной статье. <br /><br /> <strong>Логический тип данных</strong> используется в разных целях , но в основном это "флаги". Переменная такого типа может принимать в себя только два значения True и False ( истина и ложь соответственно ). <br /> <center><img src="http://mypascal.ru/images_files/1/70.png" class="img_news" alt="Значения переменных логического типа" title="Значения переменных логического типа" /></center> <br /> Изначально ( после объявления переменной в блоке var ) логическая переменная имеет значение false. <br /><br /> Задавать значение логическим переменным можно подобным образом : <br /> <div class="quote">f:= 3 > 5; <br /> f1:= 3 < 5;</div> <br /> В данном случае логическая переменная "f" примет ложное значение ( false ) , так как 3 меньше 5. А переменная f1 примет истинный результат ( true ) , так как 3 меньше 5. <br /> <h2>Операции с логическими переменными :</h2>С логическими переменными можно применять разные операции ( например : > , < и т.п ) <br /><br /> <table cellpadding="4" cellspacing="0"><tr width="100%"><td width="30%">Обозначение</td><td width="70%">Значение</td></tr><tr width="100%"><td width="30%"><</td><td width="70%">Меньше</td></tr><tr width="100%"><td width="30%">></td><td width="70%">Больше</td></tr><tr width="100%"><td width="30%"><=</td><td width="70%">Меньше либо равно</td></tr><tr width="100%"><td width="30%">>=</td><td width="70%">Больше либо равно</td></tr><tr width="100%"><td width="30%">=</td><td width="70%">Равно</td></tr><tr width="100%"><td width="30%"><></td><td width="70%">Не равно</td></tr></table> <br /> <div class="quote">f:= 3 <> 4;</div> <br /> Данная переменная примет значение true ( истина ) , так как 3 не равно 4. <br /> <h2>Логические операции :</h2>В языке паскаль также предусмотрены логические операции , с помощью которых можно объединять некоторые условия . Например 3 <> 4 и 6 > 4 - данное условие примет истинный результат , так как 3 не равно 4 и 6 больше 4. <br /> <h2>Конъюнкция :</h2> С данным видом логических операции сопряжено понятие и ( and ). В данном случае условие принимает истинное значение , когда все под условия являются истинными. А если хоть одно под условие принимает ложное значение , то всё условие принимает ложное значение. <br /> <div class="quote">f:= (8 > 5) and (7 = 7) and (7 <> 8); <br /> f1:= (3 < 5) and (3 <> 3) and (9 = 9);</div> <br /> В данном случае переменная f будет истинной , так как все под условия ( в скобках ) истинные. А переменная f1 будет ложной , так как 3 = 3. <br /> <h2>Дизъюнкция :</h2>С этим выражением можно связать логическую связку или ( or ). В этом случае условие принимает истинное значение , когда хотя бы одно под условие истинное. <br /> <div class="quote">f:= (3 > 5) or (3 = 7) or (7 < 8);</div> <br /> В этом случае переменная f принимает истинные результат , так как 7 меньше 8. <br /> <h2>Инверсия :</h2>Инверсия включает в себя логическую связку не ( not ). В этом случае выражение принимает истинный результат , когда условие ложно . Например : <br /> <div class="quote">f:= not(3 = 7);</div> <br /> Переменная f будет истинной ( true ) , так как 3 не равно 7. <br /><br /> Возможно , вы задались вопросом о том , что такое флаг и как его использовать. Перед вами пример его использования. Нам нужно определить есть ли в последовательности из 3 чисел отрицательные. <br /> <div class="quote">program mypascal; <br /> uses <br /> crt; <br /> var <br /> a: array[1..3] of integer; <br /> i:byte; <br /> flag:boolean; <br /> begin <br /><br /> randomize; <br /> for i:= 1 to 3 do <br /> a[i]:= random(21)-10; <br /> for i:= 1 to 3 do <br /> write(a[i],' '); <br /> writeln(' '); <br /> for i:= 1 to 3 do <br /> if ( a[i] < 0 ) then <br /> flag:= true; <br /> <br /> if ( flag ) then <br /> writeln('Есть отрицательные числа') <br /> else <br /> writeln('Нет отрицательных чисел'); <br /><br /> end.</div> http://mypascal.ru/blog/logicheskij_tip_dannykh/2013-07-03-23 denis http://mypascal.ru/blog/logicheskij_tip_dannykh/2013-07-03-23 Tue, 02 Jul 2013 20:03:38 GMT Тип string (строковый) в паскале Строковой тип предназначен для хранения определенных строк , например имени пользователя. <br /><br /> У этого типа есть определенные особенности , которые мы рассмотрим в данной статье. Строковой тип предназначен для хранения определенных строк , например имени пользователя. <br /><br /> У этого типа есть определенные особенности , которые мы рассмотрим в данной статье. <br /><br /> <strong>Строковый тип</strong> может хранить в себе до 255 символов ( пробелы так же следует учитывать ). <br /> <h2>Объявление переменный строкового типа :</h2><strong>Тип данных string</strong> можно объявить двумя способами : с обозначением длины строки и без обозначения. При простом объявлении строки в блоке var : <br /> <div class="quote">var<br />text:string;</div> <br /> для переменной text будет предоставлено 255 символов ( максимальное количество ). Но мы можем заранее понимать , что какая-либо переменная будет очень короткой и тогда мы используем объявление с обозначением длины : <br /> <div class="quote">var<br />name:string[20];</div> <br /> В данной строке поместятся всего 20 символов , которые будут занимать 21 байт , в отличии от 256 байт , которые займет целая строка. Экономия памяти на лицо. <br /><br /> Вы наверное уже задались вопросом : Почему строка в 255 символов занимает 256 байт ? все дело в том что строка хранит в себе не только символы , но и размер самой строки в нашем случае это 255. <br /> <h2>Операции со строками :</h2>Несколько строк можно складывать. Например вывод имени и фамилии одного человека может выглядеть так : <br /> <div class="quote">program mypascal; <br /> Var <br /> Name:string[20]; <br /> LastName:string[40]; <br /> begin <br /> writeln('Введите ваше имя :'); <br /> readln(name); <br /> writeln('Введите вашу фамилию :'); <br /> readln(lastname); <br /> writeln(name+lastname); <br /> end.</div> <br /> В данном случае , если мы введем Игорь Петров , то получим на выходе программы ИгорьПетров. <br /><br /> Строки также можно сравнивать ( больше , меньше или равно ). Пример сравнения легче всего рассмотреть на сравнении имен : Игорь и Иван. <br /> Строки сравниваются по символам : чем ближе символ к началу алфавита тем меньше он "весит". Получается , что имя Игорь будет больше , так как 2 символ в их имени больше у Игоря. <br /> <h2>Функция length :</h2>Функция length возвращает длину строки. Например функция length('привет') вернет нам число 6 , так как слово привет состоит из 6 символов. С помощью этой функции вы сможете узнать длину любой строки. <br /> <h2>Функция pos :</h2>Давайте рассмотрим такую задачу : нам нужно найти на какой позиции в строке встречается некоторое слово : <br /> <div class="quote">program mypascal; <br /> Var <br /> text:string; { Выделяем под строку 255 символов } <br /> word:string; { Слово , которое будем искать } <br /> begin <br /> writeln('Введите строку :'); <br /> readln(text); <br /> writeln('Введите искомое слово :'); <br /> readln(word); <br /> writeln('Слово ',word,' находится на позиции : ',pos(word,text)) <br /> end.</div> <br /> В этом случае на выходе программы мы получим позицию слова , которое встречается в строке в первый раз. Если такого слова нет , то функция возвращает 0. <br /><br /> Как работает функция pos : pos( какое слово ищем , в какой строке ); <br /> <h2>Функция insert :</h2>Данная функция добавляет в строку любую другую строку . Она принимает в себя 3 атрибута : insert( какую строку добавить , в какую строку , на какую позицию ). <br /> <h2>Функция delete :</h2>Эта функция удаляет определенное количество символов из строки и несет в себе 3 атрибута : delete( из какой строки , с какой позиции , сколько символов удалить ). <br /> <h2>На заметку :</h2>Строку так же можно представить в виде массива длинной в 255 ячеек , заполненных символами. Пример : <br /> <div class="quote">program mypascal; <br /> var <br /> name:string; <br /> begin <br /> readln(name); <br /> writeln(name[1]); <br /> end.</div> <br /> В результате выполнения данной программы мы получим первый символ из введенного имени. <br /><br /> Для закрепления всех этих функция давайте рассмотрим такую задачу : Требуется ввести строку и ввести слово , которое будет заменено на слово "( удалено )". <br /> <div class="quote">program mypascal; <br /> var <br /> text,word:string; <br /> posi,len:byte; <br /> begin <br /><br /> writeln('Введите строку :'); <br /> readln(text); <br /> writeln('Введите слово , которое хотите удалить :'); <br /> readln(word); <br /> <br /> posi:= pos(word,text); <br /> <br /> while (posi <> 0) do <br /> begin <br /> <br /> len:= length(word); <br /> delete(text,posi,len); <br /> insert(' ( удалено ) ',text,posi); <br /> posi:= pos(word,text); <br /> <br /> end; <br /> <br /> writeln(text); <br /><br /> end.</div> http://mypascal.ru/blog/tip_string_v_paskale/2013-07-02-22 denis http://mypascal.ru/blog/tip_string_v_paskale/2013-07-02-22 Mon, 01 Jul 2013 20:34:26 GMT Тип char (символьный) в паскале Символьный тип char похож на строковой тип string , однако он имеет множество интересных функций , предназначенных для работы с ним. <br /><br /> Поэтому типу char выделена целая статья в нашем самоучителе. Символьный тип char похож на строковой тип string , однако он имеет множество интересных функций , предназначенных для работы с ним. <br /><br /> Поэтому типу char выделена целая статья в нашем самоучителе. <br /> <h2>Тип Char :</h2>Как уже было сказано , <strong>тип char</strong> почти не отличается от типа string. Однако , в отличии от string , он хранит в себе всего один символ , а не целую строку. Сравнение переменной типа char и типа string : <br /> <center><img src="http://mypascal.ru/images_files/1/66.png" class="img_news" alt="Сравнение переменных" title="Сравнение переменных" /></center> <br /> В переменной <strong>типа char</strong> можно хранить любой символ кода ASCII. <br /> <h2>Функция ord :</h2>Мы знаем , что любой символ можно представить в виде кода. Функция ord возвращает тот самый код символа. Как использовать функцию ord : <br /> <div class="quote">program mypascal; <br /> var <br /> x:char; <br /> begin <br /><br /> writeln('Введите символ :'); <br /> readln(x); <br /> writeln(ord(x)); <br /><br /> end.</div> <br /> В результате выполнения данной программы мы получим код введенного символа. <br /><br /> Например вы ввели символ "А" , тогда на выходе программы мы получим число 65 , которое соответствует коду символа "А". <br /> <h2>Функция chr :</h2>Если мы можем взять код из символа , значит и можем сделать символ из кода. Данной операцией занимается команда chr. Она возвращает символ из кода. Пример работы данной функции можно рассмотреть ниже. <br /> <center><img src="http://mypascal.ru/images_files/1/67.png" class="img_news" alt="Пример работы функции chr" title="Пример работы функции chr" /></center> <br /> В результате выполнения данной программы мы выведем число 65 (код символа А) , а потом выведем сам символ А. <br /> <h2>Особенность типа char :</h2>Особенностью данного типа является то , что он порядковый. То есть символ C идет после символа B и т.д. В таком случае их можно сравнивать. <br /> <div class="quote">program mypascal; <br /> var <br /> x,x1:char; <br /> begin <br /><br /> x:= 'A'; <br /> x1:= 'B'; <br /><br /> if (x < x1) then <br /> writeln('True') <br /> else <br /> writeln('False'); <br /><br /> end.</div> <br /> В результате мы получим сообщение "True" , так как символ B больше символа A. <br /> Запомните : строчной символ больше прописного ( заглавного ). <br /> <h2>Функция pred :</h2>Данная функция возвращает предшествующий символ. Например функция <div class="quote">pred('b')</div>возвращает символ a. <br /> <h2>Функция succ :</h2>Эта функция работает в аналогии с функцией pred. Однако функция succ возвращает следующий символ , а не предшествующий. Функция <div class="quote">succ('a')</div>возвращает символ b. <br /> <h2>На заметку :</h2>Интересной особенностью кодов символов является то , что коды строчных и прописных символов отличаются друг от друга на 32. Проще говоря символ "А" имеет код 65 , а символ "а" имеет код 97 и так в аналогии с каждым символом. <br /><br /> Рассмотрим такую задачу : Человек вводит строчной символ ,а нам нужно вывести прописной ( заглавный ). <br /> <div class="quote">program mypascal; <br /> var <br /> x:char; <br /> begin <br /><br /> writeln('Введите один символ (строчной) :'); <br /> readln(x); <br /> writeln( chr(ord(x)-32) ); <br /><br /> end.</div> http://mypascal.ru/blog/tip_char_v_paskale/2013-07-01-21 denis http://mypascal.ru/blog/tip_char_v_paskale/2013-07-01-21 Mon, 01 Jul 2013 15:55:06 GMT Константы в паскале На ряду с переменной в паскале существует понятие константы. Что такое константа и в чем её отличие. <br /><br /> Константа это та же переменная за исключением того , что она не меняет своего значения по хожу выполнения программы. На ряду с переменной в паскале существует понятие константы. Что такое константа и в чем её отличие. <br /><br /> Константа это та же переменная за исключением того , что она не меняет своего значения по хожу выполнения программы. <br /><br /> Все константы объявляются в блоке "const" , который следует после названия программы. Константы объявляются подобным образом : Pi = 3.14 ( число пи ). Так как мы знаем , что число пи постоянное и никогда не меняется , то это значение можно занести в константу. <br /><br /> Константы имеют некоторое отличие от переменных в своем объявлении. <br /><br /> Во-первых , тип константы задавать не нужно , так как он задается автоматически исходя из вида записи значения ( Число пи будет вещественным , так как есть запятая ). <br /><br /> Во-вторых , значение константы задается заранее и больше никогда не меняется ( в ходе выполнения программы ). Если мы попробуем изменить значение константы , то получим такую ошибку : <br /> <div class="quote">Ошибка : попытка присваивания константе</div> <br /> В-третьих , знак = заменяет знак := ( присвоить ). Отличие переменных от констант вы можете рассмотреть ниже <br /><br /> <center><img src="http://mypascal.ru/images_files/1/64.png" class="img_news" alt="Отличие переменных от констант" title="Отличие переменных от констант" /></center> <br /><br /> Пример использования констант в решении задачи "найти длину окружности". <br /> <div class="quote">program mypascal; <br /> const <br /> Pi = 3.14; { Создаем константу числа Pi } <br /> var <br /> r:real; <br /> begin <br /><br /> writeln('Введите радиус круга :'); <br /> readln(r); <br /> writeln('Длина окружности = ',2*Pi*r); <br /><br /> end.</div> <br /><br /> На заметку : число Пи также можно получить с помощью функции Pi. ( <a href="http://mypascal.ru/blog/funkcii_i_operacii_v_paskal/2013-06-22-14">Подробнее про функции</a> ) http://mypascal.ru/blog/konstanty_v_paskale/2013-06-30-20 denis http://mypascal.ru/blog/konstanty_v_paskale/2013-06-30-20 Sun, 30 Jun 2013 13:55:08 GMT Комментарии в паскале Многие программы на языке паскаль могут содержать в себе огромное количество символов и единственный способ разобраться во всей этой каше - это оставлять комментарии. <br /><br /> Комментарии можно оставлять двумя способами , который мы рассмотрим в данной статье. Многие программы на языке паскаль могут содержать в себе огромное количество символов и единственный способ разобраться во всей этой каше - это оставлять комментарии. <br /><br /> Комментарии можно оставлять двумя способами , который мы рассмотрим в данной статье. <br /> <h2>Комментарий в одну строку</h2>Если ваш комментарий будет совсем небольшой , то вы смело можете пользоваться этим видом комментариев в программе. Выглядит такой комментарий так : <br /> <center><img src="http://mypascal.ru/images_files/1/61.png" class="img_news" alt="Комментарий в одну строку" title="Комментарий в одну строку" /></center> <br /> После символов // строка компилироваться не будет , но только одна строка. <br /> <h2>Комментарий в одну строку</h2>Бывают и такие случаи , когда приходится оставлять большой комментарий , который не поместится в одну строку. Такие комментарии помещаются между фигурными скобками { }. <br /> <center><img src="http://mypascal.ru/images_files/1/62.png" class="img_news" alt="Длинный комментарий" title="Длинный комментарий" /></center> <br /> <h2>Вывод</h2><div class="quote">program mypascal; // Название программы ( необязательно ) <br /> uses crt; { подключаем модуль crt } <br /> var <br /> a: array[1..10] of integer; <br /> i:integer; <br /> begin <br /> randomize; <br /> for i:= 1 to 10 do <br /> a[i]:= random(11)+1; // Заполняем массив случайнми числами <br /> for i:= 1 to 10 do <br /> write(a[i],' ; '); // Выводим массив <br /> end.</div><ul class="ul_news"> <br /> <li>Комментарии предназначены для вашего удобства во время программирования. Они помогают найти определенный участок кода , когда это нужно</li> <br /> <li>Существуют два типа комментариев : одно строчный и длинный</li> <br /> <li>Лично я , советую вам использовать 2 вид , так как он более удобен и шанс сделать ошибку намного меньше.</li> <br /> </ul> http://mypascal.ru/blog/kommentarii_v_paskale/2013-06-30-19 denis http://mypascal.ru/blog/kommentarii_v_paskale/2013-06-30-19 Sun, 30 Jun 2013 10:57:14 GMT Цвета в паскале При изменении цвета текста или фона в паскале используются цвета , номера и названия которых вы можете найти в данной статье. При изменении цвета текста или фона в паскале используются цвета , номера и названия которых вы можете найти в данной статье.<br /><br /> <center><img src="http://mypascal.ru/images_files/1/57.png" alt="коды цветов" title="коды цветов" width="350" height="610" /></center> <br /> Разницы в использовании названий или кода нет. Однако я советую вам запомнить их коды и использовать их , так как в номер цветов сделать ошибку намного сложнее. <br /><br /> А также бывают задачи , в которых главное - минимальность символов в коде. Тогда использование кода цвета намного лучше. http://mypascal.ru/blog/tablica_cvetov_v_paskal/2013-06-28-18 denis http://mypascal.ru/blog/tablica_cvetov_v_paskal/2013-06-28-18 Fri, 28 Jun 2013 12:49:20 GMT