Суббота, 20 Апреля 2024, 00:41

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Уроки по Pascal. С заданиями. (В этой теме вы найдете уроки по программированию на это ЯП.)
Уроки по Pascal. С заданиями.
DinarosДата: Среда, 19 Января 2011, 14:45 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Часть первая. Простые программы.

Урок первый. Приветствие.
Описывать Паскаль я не буду. Да и зачем его описывать? Я просто скажу какую программу надо использовать. Это Turbo Pascal.
Начну я с определённых примеров. Для начала простую программу-приветствие.
В скобках будут комментарии.

Теперь текст:

Code
program First: ( progam - служебное слово, команда, First - название программы, придумаете сами. В конце обязательно поставьте двоеточие)
begin (начало программы, в конце ничего не ставите)
write ('Привет. '); (Эта команда выведет слово 'Привет' или любое другое слово которое вы написали вместо него. В конце стоит точка с запятой)
writeln ('друзья!'); (Эта команда выведет слово 'друзья!'. Ln (line) переведёт курсор на следующую строчку)
writeln ('Это вторая строка');
end. (Конец программы. В конце обязательно точка)

Теперь разьясним что такое служебные слова (операторы). Это функции, команды. Program это команда с помощью которой можно совершать определённые действия.

Внимание! Урок перепроверил, всё правильно!

Урок второй: оформление текста.

На этом уроке я обьясню как надо оформлять текст на экране, то есть цвет текста или фона. Для этого используется CRT с помощью этого модуля мы можем управлять способом вывода текста на экран. Это простой модуль, поэтому он есть и в ПаскальАБС и Турбо паскаль.
В паскаль, обычно, при использовании используют процедуру установки курсора на такую-то координату. Длина измеряется X(от 1 до 80),а ширина Y(от 1 до 25). Наверное сказав это я уже кэп Очевидность.
Теперь используя эти знания напишу код.

Code
program Second; (или ваше название)
uses Crt; (uses - команда подключения модуля, Crt - соответственно модуль)
begin(начало)
TextBackGround (3); (Вызов процедуры выбора фонового цвета. 3 значит светло-голубой цвет. Вместо номера можно ввести цвет(black,red...))
ClrScr; (Процедура очистки экрана)
TextColor (14); (Процедура выбора цвета букв. В скобках указан цвет(в данном случае желтый))
GoToXY (40,10); (Уже понятно что это координаты)
Writeln('Что нибудь напишите'); (Вывод текста с установленным цветом(TextColor)и в соответствующей координате(GoToXY))
Delay (1000) (Сам не знаю что это, задержка кажется, но забывать её ни в коем случае нельзя)
end. (Конец. Обязательно точка в конце.)

Теперь алгоритм для выполнения задания.

Задание. Написать программу очищающая экран, и выводящая слова red, green, blue. yellow каждое своим цветом и в своей части экрана. (мыссленно разделить экран на 4 части, и указать соответствующие координаты для каждого слова.)

Урок третий: Integer.

На этом уроке я расскажу вам о типе данных integer. Он может хранить только(!) целые числа, так что особых премудростей здесь знать не надо.
Также в таких типах программ используются переменные. Чтобы они использовались нужна команда var(от английского variable - переменная).
Теперь собственно код простой программы.

Code
Program BlaBla; (Название ваше)
var (здесь начинается раздел описания переменных и их значений)
A,B,C: integer; (переменные перечислены через запятую, integer указывает тип данных(целый), так что значение переменной не должна быть дробью)
Begin (собственно начало)
A:=5; (Это оператор присваивания к переменной значения. Ни в коем случае не путать с A=5!)
writeln(A); (выводит содержимое переменной A. Не заключать в апострофы, это не слово!)
writeln('A'); (Выводит на экран символ A)
A:=A+1; (с помощью этого примера значение A увеличиться на 1)
B:=7; (ещё одна переменная)
C:=A*B; (формула. * - операция умножения)
writeln('Product=',C) (Вывод ответа с пояснением)
end. (Конец)

После запуска программы вы увидите следующее:

Задания не будет. Просто поэкспереминтируйте с примером. Добавьте ему ещё переменные, измените уравнение. Спасибо за внимание.

Урок третий, часть вторая. Операции с типом integer.

Это не урок, а повторение первой части, и дополнение к ней. Для начала простенькая программа:

Code
Program Action;
var
A,B,C: integer;
begin
A:=17;
B:=3;
C:A*B;
writeln('17 * 3=',C);
C:=A div B;
writeln('17 div 3=',C);
C:=A mod B;
writeln('17 mod 3=',C);
C:=A+B;
writeln('17 + 3=',C);
C:=A-B;
writeln('17 - 3=',C)
end.

При запуске программа выведет следующее:
17 * 3=51
17 div 3=5
17 mod 3=2
17 + 3=20
17 - 3=14

Собственно теперь задача. Даны 3 целых числа - A,B,C. Вычислить их сумму и произведение.
Алгоритм решения задачи:

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

Сообщение отредактировал Dinaros - Среда, 09 Марта 2011, 19:14
noTformaTДата: Среда, 19 Января 2011, 15:02 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
То что уроки начинаются с программ приветствий это хорошо. Но надо было бы как то расписать что такое "служебные слова", в основном что такое program. Вот например почему будет компилироватся следующая программа:
Code

begin
    WriteLn('Hello, World);
end.

?
почему можно писать с program а можно нет?
Можно было бы еще описать коротенько про функции вывода Write, Writeln.
И еще написать что {текст на русском} - это коментарии smile


@noTformaT
DinarosДата: Среда, 19 Января 2011, 15:41 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Quote (noTformaT)
Но надо было бы как то расписать что такое "служебные слова", в основном что такое program.

Как мог расписал. Если неправильно поправь скажи как и я напишу.

Quote (noTformaT)
почему можно писать с program а можно нет?

Я сам не знаю я этого не пробовал. Надо будет изучить.
VinchensooДата: Среда, 19 Января 2011, 16:24 | Сообщение # 4
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Dinaros, а ты в курсе, что твои "привет друзья" сможет прочитать только герой из суперчетверки.
Потому что нет readln-a, консоль сразу хлопнется после компиляции.
Quote (Dinaros)
Я сам не знаю я этого не пробовал. Надо будет изучить.

Какие ты тогда можешь уроки написать?
Quote (Dinaros)
Теперь разьясним что такое служебные слова (операторы). Я самоучка конечно, но попытаюсь обьяснить что это такое. Это такие слова-действия. С помощью них мы составляем определённые действия.

Это функции и процедуры. А служебные слова типа "proogram", я бы сформулировал, что они определяют некоторую служебную константу.
Либо, как var, служат для определенных действий.
Но программа составляется именно из функций и процедур.
Quote (Dinaros)
Описывать Паскаль я не буду. Да и зачем его описывать? Я просто скажу какую программу надо использовать. Это Turbo Pascal. Можно конечно и Pascal ABC но мне эта больше нравится.

Это вообще кайф, если учесть, что в этих языках имеются определенные отличия smile


DinarosДата: Четверг, 24 Февраля 2011, 15:00 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
ОК исправим.

Добавлено (19.01.2011, 16:42)
---------------------------------------------
Надеюсь я правильно исправил?

Добавлено (24.02.2011, 15:00)
---------------------------------------------
Ну так мне ждать комменты или тупо продолжать писать?

ArchidoДата: Четверг, 24 Февраля 2011, 15:42 | Сообщение # 6
Сэнсэй
Сейчас нет на сайте
Dinaros
Лучше не надо cool . Начинание похвально, но лучше сначала сам все изучи досконально, а потом учи других.
Т.к. мало того, чтобы многое тут не понятно, так оно еще и жутко не читабельно. Проще было все в одну строку тогда записать biggrin

И вообще надо выкинуть Turbo Pascal и взять Delphi, толку будет сильно больше. Pascal в своем обычном виде - мертвый язык.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
noTformaTДата: Четверг, 24 Февраля 2011, 15:58 | Сообщение # 7
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Archido)
Pascal в своем обычном виде - мертвый язык.

это как?


@noTformaT
ArchidoДата: Четверг, 24 Февраля 2011, 16:07 | Сообщение # 8
Сэнсэй
Сейчас нет на сайте
Quote (noTformaT)
это как?

А что такое? "Обычный" Pascal, который процедурный - устаревший, не актуальный. Что на нем можно толкового написать, кроме hello world'a? smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
SpihexДата: Четверг, 24 Февраля 2011, 16:13 | Сообщение # 9
Моргающий Гемо-Брат
Сейчас нет на сайте
Требую урок по выводу таблицы умножения размером 9*9.
AngevengelistДата: Четверг, 24 Февраля 2011, 16:40 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
Quote (Spihex)
Требую урок по выводу таблицы умножения размером 9*9

biggrin Жестко

DinarosДата: Четверг, 24 Февраля 2011, 18:19 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
Quote (Spihex)
Требую урок по выводу таблицы умножения размером 9*9.

Резкий переход будет от Hello World-а. Но ладно завтра будет.
GECKДата: Четверг, 24 Февраля 2011, 18:23 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Dinaros, не сказал бы что резкий. В самый раз - операции с циклами, можно и массивы присобачить.

Всё гениальное просто. И хреново работает.
froexДата: Четверг, 24 Февраля 2011, 20:09 | Сообщение # 13
Руководитель Froexilize team
Сейчас нет на сайте
Quote (Angevengelist)
for i:=1 to 9 do
      for j:=1 to 9 do
       begin
       Write(i*j,' ');
       if j=9 then
       writeln;
       end;

Ещё короче:
Code

for j:=1 to 9 do
begin
   for i:=1 to 9 do
     write(i*j, ' ');
   writeln;
end;

Добавлено (24.02.2011, 20:09)
---------------------------------------------
Урок хромает с определениями smile я бы сказал, что не очень слабо.


Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее.
Алгоритмы, программирование, оптимизация, тестирование, ведение проектов.
Ищу художника, дизайнера, тестера, программистов С и С++
Обучаю процессам разработки и программированию.
K0DAK47Дата: Четверг, 24 Февраля 2011, 21:13 | Сообщение # 14
Cat Development
Сейчас нет на сайте
В принципе, простенько. Надо что - нибудь более интересное. Или это я зажрался, после того, как пересел на Delphi.

.xm
Шаблон для разработчиков
noTformaTДата: Четверг, 24 Февраля 2011, 21:42 | Сообщение # 15
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Archido)
"Обычный" Pascal, который процедурный - устаревший, не актуальный.

что вы имеете ввиду под "обычным" паскалем? Сам ТП7, о котором тут говорится - объектный яп :).
А последняя версия стандарта Паскаля датируется 1993 годом - это Object Pascal разработаный для Apple.
Quote (Archido)
Что на нем можно толкового написать, кроме hello world'a?

абсолютно все, ТП7 поддерживает защищенный режим компиляции, а это значит что можно спокойно писать приложения под Вин32.


@noTformaT
AngevengelistДата: Четверг, 24 Февраля 2011, 21:46 | Сообщение # 16
постоянный участник
Сейчас нет на сайте
Quote (K0DAK47)
Надо что - нибудь более интересное.

А надо ли, здесь мало кто интересуется Delphi.
noTformaTДата: Четверг, 24 Февраля 2011, 21:49 | Сообщение # 17
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Angevengelist)
А надо ли, здесь мало кто интересуется Delphi.

это смотря как смотреть smile Людей этого ресурса больше интересуют конструкторы чем ЯП smile


@noTformaT
AngevengelistДата: Четверг, 24 Февраля 2011, 21:54 | Сообщение # 18
постоянный участник
Сейчас нет на сайте
Quote (noTformaT)
Людей этого ресурса больше интересуют конструкторы чем ЯП

Просто еще, никто не показал явное превосходство ЯП над конструкторами. Но это отдельная тема для обсуждения, которой здесь не место.
monk05Дата: Четверг, 24 Февраля 2011, 22:18 | Сообщение # 19
почетный гость
Сейчас нет на сайте
Тема хорошая. Правда в уроках есть, над чем поработать. Я считаю, что лучше всего начинать программировать с Паскаля, а затем уже переходить на другие ЯП с ООП. По аналогии с Паскалем легче понять другой ЯП.
SpihexДата: Пятница, 25 Февраля 2011, 03:20 | Сообщение # 20
Моргающий Гемо-Брат
Сейчас нет на сайте
noTformaT,


monk05,

Dinaros, ты сам не всё можешь объяснить в своём уроке. Ну о каком продолжении речь?

Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Уроки по Pascal. С заданиями. (В этой теме вы найдете уроки по программированию на это ЯП.)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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