Четверг, 25 Апреля 2024, 02:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Уроки по программированию на Дельфи.
Уроки по программированию на Дельфи.
ТехникДата: Понедельник, 19 Июля 2010, 17:28 | Сообщение # 1
Глава X-ray Games
Сейчас нет на сайте
Вот выкладываю свои уроки по программированию на дельфи.Когда-то я писал их для журнала, который создавал Gennyi.Но после первого урока силы иссякли ,да и проблемы с ноутом были.Поэтому выкладываю пока 1 урок.Позже выложу 2-й,которыйеще НИКТО не видел.Он планировался для второго номера журнала, но потом я не стал ее дописывать,сейчас решил воскресить ее и дописать.

Урок по программированию 1 часть.

Начало начал…

И так, мы начинаем цикл уроков ,посвященных программированию на Delphi.А именно Borland Delphi 7. Сегодня, вступительный урок, в котором вы научитесь основам программирования и создадите простой калькулятор. Итак, начнем!

Тяжело в учении, легко в бою.

Собственно языка Delphi не существует, то что мы называем Delphi – это система программирования на Паскале. Сами азы Паскаля изучаются еще в школе. Все знают, как написать программу сложения двух чисел посредством консоли. Но всегда хочется большего. И поэтому многие начинают учить язык самостоятельно, с помощью самоучителя, однако не все завершают начатое.
Начнем с основных понятий, которые должен знать каждый, кто изучает язык. Вот список, правда, здесь приведены только основные определения:
Код – текст программы, записываемый на языке программирования.
Исходник – То же самое, что и код.
Оператор – Часть кода, в который записывается действия, необходимые при работе программы.
Компиляция – процесс перевода программного кода в тот, который понятен компьютеру, то есть машинный. Для процесса компиляции используют компиляторы.
Система программирования – то в чем пишут программы.
Ключевые слова – зарезервированные слова, используемые в каждом языке программирования, для создания программы.
Объявление(данных) – описание данных, для дальнейшего его использования.
Ну, думаю этого пока хватит, для того, чтобы написать простую программу. Конечно же я буду пояснять каждый шаг.

Первая программа.

Сейчас мы начнем писать первую нашу с вами программу, это будет простейший калькулятор, который умеет складывать вычитать, умножать и делить целые числа.
Запустив программу вы увидите окно с формой и редактором исходного текста, он нам пока не нужен, мы перейдем к нему по позже. Нам надо создать консольное приложение, для этого выберите file - new - others - console application.перед вами появится исходный текст. Так как консоль не имеет визуальных компонентов, то мы прибегнем к стандартным словам WriteLn и ReadLn, эти слова предназначены для вывода/ввода. Теперь начнем заполнять подготовленный шаблон.
После слова – пишем ключевое Var , оно предназначено для объявления переменных. Так же существует еще один вид объявляемых данных – это константы. Например:

Теперь мы запишем несколько переменных, а именно 3:a,b,c.их вполне хватит. Все переменные, которые надо объявить пишут в столбик после ключевого слова, причем указывают, к какому типу оно принадлежит.
Var a:integer;
b:real;
c:string;
В данном примере переменной a назначен тип целого числа, b десятичного, а с строки. Нам же надо, чтобы все числа были только целыми, для этого пишем:
Var a:integer;
b: integer;
c: integer;
Идем дальше. Теперь нам надо сделать так, чтобы начался процесс подсчета суммы чисел. Для этого используют операторы. Начинается оператор словом Begin, а заканчивается end.Но здесь есть одна тонкость, дело в том, что после слова end не всегда нужно ставить точку. Её ставят только в том случае, если заканчивается программа. end; -ставят после завершения очередного оператора. После слова Begin знаки не ставят.
Теперь начнем писать самое главное – алгоритм программы. То, как она будет высчитывать сумму двух чисел. Это конечно банальная арифметика + правильный синтаксис, здесь нет ничего сложного. После слова Begin пишем c:=a+b; .
вот как это будет выглядеть:
Var a:integer;
b:integer;
c:integer;
begin
c:=a+b;
Заметьте, что end пока ставить не надо. Перед строкой «c:=a+b;», надо поставить строку «ReadLn(a,b);»,это надо для того, чтобы ввести данные о этих числах в память программы. И «WriteLn©;» , а это надо соответственно для вывода полученного числа. Ну и в завершении текста, поставим снова ReadLn, для того чтобы программа не закрывалась раньше времени.
Общий вид всего исходника такой:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
Var a:integer;
b:integer;
c:integer;
begin
ReadLn(a,b);
WriteLn©;
c:=a+b;
end.
Слово {$APPTYPE CONSOLE} определяет вид приложения, в данном случае это консоль. uses SysUtils;нужен для добавления дополнительных модулей, о том как это делать, да и о самом пункте поговорим позже.

Все! Вы написали свою первую программу. Введите два любых целых числа через пробел и нажмите «enter», в строке ниже выведется ответ.
В следующий раз, мы с вами сделаем калькулятор, в привычной для нас форме оконного приложения windows. Начиним его контекстным меню, а так же несколькими интересными функциями. Так же опишем ,как подключать дополнительные модули в свои программы.

ezhickovichДата: Понедельник, 19 Июля 2010, 21:29 | Сообщение # 2
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Техник, особо не вчитывался но вроде нормально... + в репу...


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
DestroyДата: Среда, 24 Ноября 2010, 20:26 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
так по идее все правильно, но ты с общим видом исходника напутал
Quote (Техник)

begin
ReadLn(a,b);
WriteLn©;
c:=a+b;

должно быть все наоборот
begin
ReadLn(a,b);
c:=a+b;
WriteLn©;
ты получается вначале выводишь результат а потом присваеваешь ему значение,
или я конечно может что то путаю, но по паскалю так все.

и вообще © эт че за символ? это переменная с?

foxraptorДата: Суббота, 04 Декабря 2010, 00:59 | Сообщение # 4
был не раз
Сейчас нет на сайте
тут можно качнуть видео уроки по Deplhi 7
фЕноменДата: Суббота, 04 Декабря 2010, 08:54 | Сообщение # 5
частый гость
Сейчас нет на сайте
Техник, оформление темы ужасное. wink
Quote (Destroy)
должно быть все наоборот

Техник, перед тем как выкладывать сюда код программы, проверь его в Делфи, причём не один раз (Это на будующее).
Quote (Destroy)
и вообще © эт че за символ? это переменная с?

Это форум меняет
Code
© на (c)

Так что уважаемые новички пишите:
Code
WriteLn(c);

,а не
Code
WriteLn©;

Вот весь код:
Code
program Project1;  //Название программы Project1
{$APPTYPE CONSOLE}
uses                    
    SysUtils;   //Подключаем библиотеку SysUtils                   
Var                    
    a,b,c:integer;   //Задаём переменные
begin                    
    ReadLn(a,b);   //Вводим два числа                    
    c:=a+b;   //Складываем их
    WriteLn(с);   //Выводим результат
    ReadLn; //Что бы окно сразу не закрылось, а то не успеете увидеть результат (Программа закроется при нажатии клавиши Enter).
end.

Можно использовать 2 переменные, а не 3, если это вся программа. Запомните, чем меньше переменных (тем более глобальных), тем лучше.

Code
program Project1;  //Название программы Project1
{$APPTYPE CONSOLE}
uses                    
   SysUtils;   //Подключаем библиотеку SysUtils                    
Var                    
   a,b:integer;   //Задаём переменные
begin                    
   ReadLn(a,b);   //Вводим два числа                    
   a:=a+b;   //Складываем их
   WriteLn(a);   //Выводим результат
   ReadLn; //Что бы окно сразу не закрылось, а то не успеете увидеть результат (Программа закроется при нажатии клавиши Enter).
end.

Можно сделать программу понятнее. А то только вы понимаете зачем нужна эта программа (Как выводить кириллицу я напишу в своих уроках, а пока надписи на транслите).

Code
program Project1;  //Название программы Project1
{$APPTYPE CONSOLE}
uses                    
   SysUtils;   //Подключаем библиотеку SysUtils                    
Var                    
   a,b:integer;   //Задаём переменные
begin
   WriteLn('Summa a i b'); //Описание программы
   Write('Vvedite a ->'); ReadLn(a);   //Вводим число a                  
   Write('Vvedite b ->'); ReadLn(b);   //Вводим число b                   
   a:=a+b;   //Складываем их
   WriteLn('a+b=',a);   //Выводим результат
   ReadLn; //Что бы окно сразу не закрылось, а то не успеете увидеть результат (Программа закроется при нажатии клавиши Enter).
end.

ЗЫ: просьба писать код программы заключая в теги [code*][/code*] без *, тк форум многое менят.
ЗЗЫ: Сегодня начну писать уроки по Delphi, вижу что хороших и понятных уроков мало.


Mugen For All - Русскоязычное сообщество пользователей движка M.U.G.E.N.


Сообщение отредактировал фЕномен - Суббота, 04 Декабря 2010, 09:53
wernherДата: Суббота, 04 Декабря 2010, 10:02 | Сообщение # 6
Only God is Perfect
Сейчас нет на сайте
Quote (Техник)
Собственно языка Delphi не существует, то что мы называем Delphi – это система программирования на Паскале.

http://ru.wikipedia.org/wiki/Delphi_(язык_программирования)

фЕномен, начальные уроки уже есть. Не имеет смысла опять начинать с начала. Проще продолжить написаное.




Сообщение отредактировал wernher - Понедельник, 06 Декабря 2010, 19:21
IIIypukДата: Вторник, 08 Февраля 2011, 03:16 | Сообщение # 7
-- ArchLinux Fan --
Сейчас нет на сайте
Техник, большое спасибо. Всегда хотел закончить программировать на Visual Basic и перейти на Delphi.


Одинокий юзер
RikettaДата: Вторник, 08 Февраля 2011, 03:27 | Сообщение # 8
Strategist
Сейчас нет на сайте
IIIypuk, по моему обычно делают на оборот... wink
Хотя языки схожи.
Классный урок, нового не узнал, но как и все тоже с этого начинал.


Fougerite - Rust Server OpenSource API
TerraDev - Terraria OpenSource Hack
akyl91Дата: Воскресенье, 13 Февраля 2011, 21:13 | Сообщение # 9
участник
Сейчас нет на сайте
Отпишусь и сюда. Может кому сгодится...
Я тут как-то разбирался с Делфи и составил суперкороткую инструкцию по борьбе с этой бедой с самого начала.
Если интересует см. тут http://w-help.narod.ru/1/DELPHI_2009_Instrukshin.rar


Вы не говорите ЧТО мне делать,
Я не говорю Вам КУДА пойти.
IIIypukДата: Воскресенье, 13 Февраля 2011, 22:11 | Сообщение # 10
-- ArchLinux Fan --
Сейчас нет на сайте
Quote (akyl91)
http://w-help.narod.ru/1/DELPHI_2009_Instrukshin.rar

Где то мне уже давали такую ссылку.


Одинокий юзер
netkillerДата: Воскресенье, 13 Февраля 2011, 22:41 | Сообщение # 11
Developing Vader
Сейчас нет на сайте
+ то я поставлю за старания
Но:
Тема не оформленна нормально!Я вижу только груду текста!Можно ж было по-выделять определения, а кое-что по-отделать и поставить в code?
Разобратся трудно, а тем более новички(для которых ты написал) нифига не поймут!
Так что ставлю 0.5 плюса(символично), делая ставку на следующие уроки!



Мой туториал по UDK:
Создание простого платформера
WIBartsДата: Воскресенье, 13 Февраля 2011, 22:51 | Сообщение # 12
gruppo0 - программист с#
Сейчас нет на сайте
хм... Фишка дельфи в гуи и прочих фишках. Ты написал уроки тупо по паскалю. Это можно написать (с бегин) и в турбо пасквиль 7. Урок в общем по паскалю. А так норм. Только оформи код

Добавлено (13.02.2011, 22:51)
---------------------------------------------
wernher, язык называется object pascal. А дельфи лишь иде



noTformaTДата: Воскресенье, 13 Февраля 2011, 23:03 | Сообщение # 13
Ukrainian independent game developer
Сейчас нет на сайте
Quote (WIBarts)
А дельфи лишь иде

Начиная с делфи 7 язык Обжект паскаль называется уже делфи, хотя делфи не потдерживает в полном обжект паскаль


@noTformaT
WIBartsДата: Воскресенье, 13 Февраля 2011, 23:05 | Сообщение # 14
gruppo0 - программист с#
Сейчас нет на сайте
noTformaT, ну есть же и лазарус. Кто как называет.


netkillerДата: Воскресенье, 13 Февраля 2011, 23:06 | Сообщение # 15
Developing Vader
Сейчас нет на сайте
Надо было написать урок по созданию графического калькулятора тогда это больше для дельфинов.


Мой туториал по UDK:
Создание простого платформера
noTformaTДата: Воскресенье, 13 Февраля 2011, 23:08 | Сообщение # 16
Ukrainian independent game developer
Сейчас нет на сайте
Quote (WIBarts)
noTformaT, ну есть же и лазарус. Кто как называет.

лазарус это IDE для компилятора freepascal :^)
Quote
Начиная со среды разработки Delphi 7.0[3], в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

цитата из вики smile


@noTformaT
IIIypukДата: Воскресенье, 13 Февраля 2011, 23:10 | Сообщение # 17
-- ArchLinux Fan --
Сейчас нет на сайте
Quote (netkiller)
нифига не поймут

Я первый раз открыл Delphi И написал прогу по этому учебнику. Прада до этого быо опыт с Pascal


Одинокий юзер
noTformaTДата: Воскресенье, 13 Февраля 2011, 23:12 | Сообщение # 18
Ukrainian independent game developer
Сейчас нет на сайте
Quote (IIIypuk)
Я первый раз открыл Delphi И написал прогу по этому учебнику. Прада до этого быо опыт с Pascal

turbopascal и delphi это разные вещи, и программы у них имеют другую архитектуру smile


@noTformaT
WIBartsДата: Воскресенье, 13 Февраля 2011, 23:16 | Сообщение # 19
gruppo0 - программист с#
Сейчас нет на сайте
просто данную программу (ибо она консольная) может и турбо и фрипас понять, различие лишь в инт64 и юзес

Добавлено (13.02.2011, 23:16)
---------------------------------------------
лично моя первая прога на дельфи был браузер



netkillerДата: Воскресенье, 13 Февраля 2011, 23:19 | Сообщение # 20
Developing Vader
Сейчас нет на сайте
IIIypuk, ну я хотел сказать, то что непонятно объяснено!
Может просто скопипастить можно, но видь надо объяснить что одно, что второе означает!
Не объяснено что означает := и : !



Мой туториал по UDK:
Создание простого платформера
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Уроки по программированию на Дельфи.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг