Привет дорогой, с вами снова Доктор Зло, я давно не писал статьи, так как не было желание и лень, ох эта ужасная лень… Но вот это желание снова проснулось (правда, через силу), в этом уроке мы поговорим о дальнейшим порабощении языка паскаль о типах данных и об условных операторах (В РОТ МНЕ НОГИ).
И не забываем читать комментарии в коде – в них глаголет истина…
Сначала поговорим о типах данных…
Это такая хрень без которой нельзя обойтись в языке паскаль (к сожалению) (кстати говоря, в одном волшебном языке - JavaScript, не обязательно объявлять тип, этим меня он и прет)
Строка Объявить переменную с нужным нам типом, просто, к примеру, как мы делали в нашем примере с «hello user»
Code
Var s:string;
Мы тут объявили переменную «s» как тип string, из названия этого типа понятно, что это простая строка.
Теперь мы рассмотрим еще пару нужных нам типов (осторожно, много буковь):
Целые типы
(Типы для хранения цифр (чисел)) Integer, longint, byte остальные нам не очень понадобится (я надеюсь =) ) Они отличаются только размерами, например byte может хранить только одно число, вообще мы вначале будем использовать только longint, т.к. оно самое большое.
Чтобы создать переменную с longint, и присвоить какое нибудь число:
Code
Var s:longint; Begin S:=123456; End.
З.Ы. вместо s можно написать любую букву или слово, это я так на всякий случай
Логический тип Это тип, умеющий хранить, так сказать, «правду» и «не правду», короче данный тип может принимать только значения «true» (правда) и «false» (не правда).
Этот тип очень полезен (как и остальные). К примеру, нам нужно узнать, кто съел печеньки… Это сделал Вася! – мы получим «false» (это не правда); это сделал Lex-Serest?!– мы получим «true» (это правда):D
Создать переменную с логическим типом:
Code
Var b:boolean; Begin b:=true; //к “b” присвоили правду… End.
Вещественный тип Это вещественный тип, точнее он может хранить не целые числа. Например, real , пример использования:
Code
Var s:real; Begin // (это комментарии если что, в них можно писать все что угодно) S:=1234.6545; // вот тут мы видим real во всей красе =) End.
Еще к вещественному типу относиться: extended и double, они отличатся от real только размером… (они больше real'ьности , но нам пока что это не понадобиться, хотя можете импровизировать)) )
Теперь поговорим о том, что с типами можно делать…
Сложение (почти со всеми, кроме Вещественного типа (смотрим наверх, что это)):
Code
Var l1,l2:longint; R1,r2:real; S1,s2:string; Begin
L1:=54; L2:=12; Writeln(l1+l2); // выведет 66
r1:=54.50000; r2:=12.50000; Writeln(r1+r2); {выведет 6,70000000000000 и т.д. и это не есть гуд если написать “ r1+r2:0:3”, (то есть «Writeln(r1+r2:0:3);» ) то будет все нормально, :0:3 нужна для того что бы он нам выводил 3 знака после запятой, а не множество нулей, можно вместо тройки поставить любое другое число} Writeln(r1+r2:0:3);
Так же все это будет работать и для «readln» (надеюсь, что все помнят что это, если не помните, смотрите в прошлом/позапрошлом уроке)
Разность
Code
Var l1,l2:longint; R1,r2:real;
Begin L1:=54; L2:=12; Writeln(l1-l2); // выведет 42 (мы получили ответ на вопрос вселенной и всего такого хД ) r1:=54.50000; r2:=12.50000; Writeln(r1-r2:0:3); // выведет 42 (что-то у меня дежавю) readln; End.
К сожалению, отнимать у строки нельзя…
Умножение Так же естественно есть еще умножение, поэтому его приводить не буду, могу сказать, что оно обозначается «*»
Но вот деление считается совсем не так…
Деление
Code
Var l1,l2:longint; R1,r2:real;
Begin L1:=54; L2:=10; Writeln(l1 div l2); // выведет «5», “div” - это деление без остатка, к примеру если выполнить “5 div 2”то выведет “2” Writeln(l1 mod l2); // выведет «4», “mod” – это получение остатка с округлением, к примеру если выполнить 5 mod 2, то выведет 3 (5/2 = 2.5, если округлить, то будет 3)
r1:=52; // точку с нулями можно для этого типа не писАть, это я так на всякий случай... r2:=12; Writeln(r1/r2:0:3); //“/” – знак деление, тут, я надеюсь, все понятно)
readln; End.
Теперь решим маленькую задачу посчитать площадь произвольного квадрата, зная одну его сторону (площадь квадрата равна – квадрату его стороны (хД туфтология получилась)) Напишем программу:
Code
Program z1; //надеюсь что все помнят с чего должна начинаться программа… (кто не помнит, читайте прошлые уроки) Var hax: longint; //заводим переменную, в которой будем хранить длину стороны квадрата Begin Writeln('введите длину стороны квадрата'); //приветствие (куда же без него) Readln(x); //запрашиваем длину, и сохраняем ее в переменную «hax» (ыыы) Writeln('Площадь квадрата=',hax*hax); //выводим текст (человек же должен знать что мы получили… и выводим квадрат стороны, то есть площадь {кстати забыл добавить – во Writeln'e «'текст',хрень» заместо «текст» можно вписать все что угодно, то что находится после запятой (где написано «хрень»), должна идти переменная, так же можно так дохрена вывести текст, переменная, текст, переменная, к примеру, можно вот так Writeln('Площадь квадрата=',hax*hax,' вротмненоги-работает'); } {кстати говоря, в некоторых средах программирования (эта та хрень в которой вы пишите код) вместо русского текста выводит какие-то крякозябли, если такое у вас, используете вместо русских букв, английские, пример - (p/\olllaDb kBadPaTa= )} readln; // нужно что бы наша прога не закрывалась сразу после запуска End.
(ухтыё, вы видите много непонятных слов? Тогда перечитай еще раз - до сих пор не понятно? - спроси в комментах)
Фух вроде справились, маленькое домашнее задание – напишите программу для подсчета площади прямоугольника (то есть, одна сторона на вторую сторону (горизонтальную на вертикальную)) (за решенные домашние задания, будут поощрения, в виде вкусных печенек в репутацию =) )
Надеюсь, что вы передОхнули, пока считали перевод строк, теперь продолжим
Условия
Что такое условия? Условия это то что нужно выполнять при выполнении какого-то условия
Пример: Если этот человек - модератор, то сказать ему что он хороший человек, если нет - сказать что он го#но (логика тролля)
В общем в языке паскаль, условия выглядят следующим образом:
If [условие] then [че нужно делать]; Или можно вот так: If [условие] then [че нужно делать] else [если условие ложное выполняется это];
Пример:
Code
If z=0 then writeln('это ноль') else writeln('это не ноль');
Задание для укрепления материала Даны два числа, вывести их сумму, разность, произведение и частное ( еще раз говорю, за решенные домашние задания, будут поощрения, в виде вкусных печенек в репутацию =) )
<Продолжение - позже, а пока отдохните, побейтесь апп стену головой, что бы все усвоить, дальше – хуже>
Урок НЕ полный. Продолжение об условиях будет в следующим уроке, так как я сейчас болею, а когда болеешь такой кайф писать многостраничные уроки… В следующим уроке, мы подробно разберем условия и узнаем чем они хороши, так же начнем изучать циклы (гы гы)
Гм.. почему когда вводишь переменную строки (которая string) и как бы складываешь 2 части слова выдает "FALSE"?
Добавлено (12.03.2011, 13:37) --------------------------------------------- так домашка (xD): площадь прямоугольника
Code
Program z; Begin Var l:longint; l2:longint; Writeln('vvedite 2 storony pryamougolnyka'); Readln(l,l2); Writeln('ploshad pramougolnika=',l*l2); Readln; End.
Сумма, разность, произведение, часное числа
Code
Program z; Var l1:longint; l2:longint; Begin L1:=12; L2:=6; Writeln('summa=',l1+l2); Writeln('raznost=',l1-l2); Writeln('proizvedenie=',l1*l2); Writeln('chasnoe=',l1 div l2); Readln; End.
Возможны ошибки в пунктуации) Еще есть вариант, что сам вводишь 2 числа и он считает) Тогда
Code
Program z; Begin Var l1:longint; l2:longint; Writeln('vvedite 2 chisla'); Readln(l1,l2); Writeln('summa=',l1+l2); Writeln('raznost=',l1-l2); Writeln('proizvedenie=',l1*l2); Writeln('chasnoe=',l1 div l2); Readln; End.
Вот только тут уже что-то не так...
Shadow of the kitten.
Кому нужна подпись в таком стиле или с таким же шривтом пишите в лс
Думаю прямо в форум исходники домашек писать не стоит) Предлагаю вариант - исходники Лексу на мыло, а на форум можно будет прогу прикрепить, чтоб похвастаться)
Quote (Duffman)
Блин, ты зачем эту кнопу сделал?) Меня репутацией заспамили.
кнопка конечно прикольно сделана, но сомневаюсь, что использование таких кнопок законно с позиции накрутки) Вот если б скрипт связать с внешним пхп скриптом и сделать так, чтоб одному юзеру она не подымала репу более, чем на +3...
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)
кнопка конечно прикольно сделана, но сомневаюсь, что использование таких кнопок законно с позиции накрутки)
я хотел привязать к кукам (cookie), но было лень...
Quote (firsacho)
Думаю прямо в форум исходники домашек писать не стоит) Предлагаю вариант - исходники Лексу на мыло, а на форум можно будет прогу прикрепить, чтоб похвастаться)
классная идея), но пожалуй ЛС куда лучше будет, я на свое мыло очень редко захожу :3
я хотел привязать к кукам (cookie), но было лень...
я с куками ваще не дружу) потом как буду че-нить кодить, расскажешь как с ними работать)
Quote (Lex-Serest)
но пожалуй ЛС куда лучше будет
ну да, или ЛС
Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005) Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007) Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)