[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
  • Страница 1 из 1
  • 1
2. Типы данных и условия
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Оглавление

Привет дорогой, с вами снова Доктор Зло, я давно не писал статьи, так как не было желание и лень, ох эта ужасная лень… Но вот это желание снова проснулось (правда, через силу), в этом уроке мы поговорим о дальнейшим порабощении языка паскаль о типах данных и об условных операторах (В РОТ МНЕ НОГИ).

И не забываем читать комментарии в коде – в них глаголет истина…


Сначала поговорим о типах данных…

Это такая хрень без которой нельзя обойтись в языке паскаль (к сожалению) (кстати говоря, в одном волшебном языке - 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);

s1:='Dr. E';
s2:='vil';
Writeln(s1+s2); //выведет  "Dr. Evil":D

readln;
End.

Так же все это будет работать и для «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.

(ухтыё, вы видите много непонятных слов? Тогда перечитай еще раз - до сих пор не понятно? - спроси в комментах)

Фух вроде справились, маленькое домашнее задание – напишите программу для подсчета площади прямоугольника (то есть, одна сторона на вторую сторону (горизонтальную на вертикальную))
(за решенные домашние задания, будут поощрения, в виде вкусных печенек в репутацию =) )










Надеюсь, что вы передОхнули, пока считали перевод строк, теперь продолжим

Условия

Что такое условия?
Условия это то что нужно выполнять при выполнении какого-то условия wacko


Пример:
Если этот человек - модератор, то сказать ему что он хороший человек, если нет - сказать что он го#но
(логика тролля)

В общем в языке паскаль, условия выглядят следующим образом:

If [условие] then [че нужно делать];
Или можно вот так:
If [условие] then [че нужно делать] else [если условие ложное выполняется это];

Пример:

Code
If z=0 then writeln('это ноль') else writeln('это не ноль');


Задание для укрепления материала
Даны два числа, вывести их сумму, разность, произведение и частное
( еще раз говорю, за решенные домашние задания, будут поощрения, в виде вкусных печенек в репутацию =) )


<Продолжение - позже, а пока отдохните, побейтесь апп стену головой, что бы все усвоить, дальше – хуже>

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




:3
 
Duffman
Проверенные
Сообщений: 287
Реп: 25
Люблю твои уроки) Только в некоторых случаях плавится мозг wink
НО например, фразу
Quote (Lex-Serest)
Условия это то что нужно выполнять при выполнении какого-то условия
я вообще не понял) (кстати, все вроде учили геометрию и знают о плошадях хоть что-то)
Дз я позже здам)


Shadow of the kitten.

Кому нужна подпись в таком стиле или с таким же шривтом пишите в лс

 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Duffman,
Quote (Duffman)
Условия это то что нужно выполнять при выполнении какого-то условия

biggrin да я знаю, я просто заболел и не смог мог придумать другого определения biggrin

Кстати маленький баг в уроке - в МикроСофт Оффисе вместо ' ставиться - ‘ и ’
Я уже проапгрейдил урок


:3
 
[WEC]__Grim
Проверенные
Сообщений: 507
Реп: 17
чёт ваще мозг кипит


Я вернулся...
 
Duffman
Проверенные
Сообщений: 287
Реп: 25
Гм.. почему когда вводишь переменную строки (которая 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.

Кому нужна подпись в таком стиле или с таким же шривтом пишите в лс

 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
Duffman, о.О поздравляю, ты молодец
но в первой задачи ты begin не туда воткнул biggrin

Code
l:longint;   
l2:longint;

можно так писать если что

Code
l,l2:longint;

biggrin

печеньки розданы


:3
 
Duffman
Проверенные
Сообщений: 287
Реп: 25
Блин, ты зачем эту кнопу сделал?) Меня репутацией заспамили. В часности рик и сергей...

Shadow of the kitten.

Кому нужна подпись в таком стиле или с таким же шривтом пишите в лс

 
firsacho
Админы
Сообщений: 3813
Реп: 84 / Инв: 15
Quote (Duffman)
так домашка (xD): площадь прямоугольника

Думаю прямо в форум исходники домашек писать не стоит) Предлагаю вариант - исходники Лексу на мыло, а на форум можно будет прогу прикрепить, чтоб похвастаться)

Quote (Duffman)
Блин, ты зачем эту кнопу сделал?) Меня репутацией заспамили.

кнопка конечно прикольно сделана, но сомневаюсь, что использование таких кнопок законно с позиции накрутки)
Вот если б скрипт связать с внешним пхп скриптом и сделать так, чтоб одному юзеру она не подымала репу более, чем на +3...




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Lex-Serest
Админы
Сообщений: 825
Реп: 83 / Инв: 14
блин, урок же надо дописать, я про него забыл....

Quote (firsacho)
кнопка конечно прикольно сделана, но сомневаюсь, что использование таких кнопок законно с позиции накрутки)

я хотел привязать к кукам (cookie), но было лень...

Quote (firsacho)
Думаю прямо в форум исходники домашек писать не стоит) Предлагаю вариант - исходники Лексу на мыло, а на форум можно будет прогу прикрепить, чтоб похвастаться)

классная идея), но пожалуй ЛС куда лучше будет, я на свое мыло очень редко захожу


:3
 
firsacho
Админы
Сообщений: 3813
Реп: 84 / Инв: 15
Quote (Lex-Serest)
я хотел привязать к кукам (cookie), но было лень...

я с куками ваще не дружу) потом как буду че-нить кодить, расскажешь как с ними работать)

Quote (Lex-Serest)
но пожалуй ЛС куда лучше будет

ну да, или ЛС




Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
  • Страница 1 из 1
  • 1
Поиск: