Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Как создать свой сайт и заработать?" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Программирование с нуля - это совсем просто! 19) Расчет и присваивание выражений
Информационный Канал Subscribe.Ru |
Программирование с нуля - это совсем просто!19) Расчет и присваивание выражений
Вот в Паскале, что касается типа данных Integer, Real, String. По какому принципу выбирать эти значения, целый тип, дробный или строка. Непонятно было на этом месте. Типы данных мы будем выбирать в зависимости от задачи. Если целочисленные расчеты, то Integer, если обработка строк, то String итд. Дальше из примеров это будет более понятно. Название переменной нужно только для того, чтобы из программы как-то обращаться к содержимому некоторой ячейки памяти, в которой мы храним данные. У каждой ячейки есть свой адрес (порядковый номер), но удобнее конечно к ней обращаться по произвольно выбранному человеком имени. Значение, которое хранится в переменной (соответствующей ее названию ячейке памяти), может меняться в программе по ходу ее работы. Название переменной просто указывает на местонахождение конкретных данных в памяти в виде, удобном программисту. Данные в этом месте могут изменяться. Сначала записали 1, потом 5, потом 0 - в ячейку с номером 12345, которому соответствует имя переменной MyValue. MyValue соответствует номеру 12345 ячейки памяти, а что в ней хранится конкретно, определяется во время работы программы. Есть у нас типовые баночки, каждая приспособлена для хранения разных специй. Одна может хранить соль, другая - перец, третья - сахар и т. д. На каждой также есть наклейка, на которой хозяйка пишет "соль обычная", "соль морская", "сахар", "сахарин". Баночек для хранения сахара, соли и др. может быть много, все они схожи будут тем, что могут хранить только сахар или только соль (конструктивная такая особенность, заводская :), но каждую можно отличить от других по надписи, которую делает хозяйка. В нашем случае баночка - это некоторая область памяти в компьютере для хранения данных. Хранить она может либо целые значения (горошек), либо дробные (соль), либо строки (мука там). Баночек таких много, но чтобы взять конкретную и изменить ее содержимое (добавить сахарку или отсыпать), к ней надо обратиться по имени. Командой var CAXAPOK: Integer; мы заводим в программе баночку с наклейкой CAXAPOK (это мы сами придумали такое название; латинскими конечно буквами) для хранения данных целого (Integer) типа. Оператор присваивания CAXAPOK := 10; заносит в "баночку" с наклейкой CAXAPOK значение 10. Так попонятнее? Целые - это целые :) Без дробной части. Формально говоря, если в записи числа нет знака-разделителя (дробной точки), то число считается целым, иначе - дробным.
50 - целое. Насчет main() мы коснемся чуть попозже. Это стандартная часть любой Си-программы, которая вызывается автоматически, она после своей работы формирует значение (реально - код завершения программы) целого типа (отсюда int). Вы кстати очень хорошо сделали, что начали экспериментировать! :) Так как int main() - стандартная главная часть любой Си-программы, то когда Вы изменили тип формируемого ей значения, компилятор счел float main() за что-то другое нестандартное, а так как необходимой части int main() не нашел, то выдал ошибку. Вот еще пример моего неправильного объяснения. Программа прислана человеком, который в комментарии так написал:
Сначала я подумал что этими командами можно делать выбор программе нажимать именно числа 124, только после ввода она закроется. Я хотел сделать чтобы при вводе например 1, программа оставалась "типа" ждать, при вводе 2, закрывалась.
program Project2; Надеюсь, из-за кавычек текст не пропадет... Здесь вы использовали ключевое слово "ЕСЛИ". Если введено одно, то делать так-то, а если другое - то так-то. Идея совершенно правильна :) Вы просто немного спешите :) В любом языке программирования есть так называемый условный оператор - если некоторое условие выполняется, то делать то-то, иначе делать другое. Мы до него уже совсем скоро доберемся! Как такая программа работает? А очень просто. Как я уже говорил, сверху вниз, ничего не пропуская. Вы сами всегда можете смоделировать ее работу, вручную выполняя операторы по шагам. Сначала создаются две переменные X и Y. Затем последовательно выводятся три сообщения про Yes и No. Потом в переменную X заносится значение 1, а в переменную Y - значение 2. Затем выполняется оператор ReadLn - в эти же переменные заносится значение, введенное с клавиатуры (то есть старые значения пропадают). После этого программа заканчивается :) Вообще ВСЕ программирование сводится к крайне ограниченному набору понятий. Вот они:
Типы данных. Собственно, это все :) Сами посмотрите, сколько нам осталось до конца первого этапа. На этом с консольными программами будет покончено :) Затем надо будет выяснить, как создавать собственные функции (группы команд, которые часто используются в разных местах и которые лучше выделить в отдельный модуль, нежели каждый раз вручную копировать) и как работать с файлами. И одновременно особенности создания графических интерфейсов - снова вернемся к музыкальному плееру и тому подобным вещам. Почему это сейчас нельзя сделать? Потому что там появятся такие понятия, как функция, массив итд. Список строк например (список названий композиций для воспроизведения) - это типичный массив, в частности. К каждой строке обращаться можно по ее номеру порядковому. А сам список строк (элемент интерфейса на форме) в программе представлен переменной. Разве это сложно? Это удобно! Вот уже понятие массива кстати немного рассмотрели :)
Расчет и присваивание выражений В правой части оператора присваивания может находиться не только одно число, но и любое арифметическое выражение. Например:
X := 2 + 2; Сначала происходит вычисление значения правой части - расположенного там выражения с учетом приоритетов арифметических операций (умножение и деление выполняются в первую очередь, сложение и вычитание - во вторую). Полученное значение присваивается соответствующей переменной, расположенной слева. Слева может стоять только имя переменной (фактически - ссылка на некоторое место в памяти компьютера, куда будет заноситься результат - на "баночку")!
В дополнение к четырем знакам арифметических операций разрешается использовать круглые скобки. Это позволяет изменить последовательность вычисления значения выражения. Так, следующая последовательность команд приведет к тому, что в переменную Y будет записано значение 4:
X := 3; Понятно, почему 4? Потому что команды программы выполняются последовательно, не обгоняя одна другую :) В первом операторе переменной X присваивается значение 3, а во втором операторе число 3 (значение переменной X) складывается с числом 1, и полученное значение 4 записывается в переменную Y.
Дополнительные арифметические операторы Уже упоминалось, что в дополнение к стандартным операциям разработчик на Delphi может применять и другие математические функции. К стандартным и наиболее часто используемым относятся: оператция возведения числа в степень, операция определения остатка от деления одного числа на другое и операция определения целого результата деления двух чисел. Для записи процесса возведения числа в степень используется символ ^. Слева от этого символа указывается число, которое будет возведено в степень, записанную справа от него. Следующая команда занесет в переменную X значение 256 (2 в восьмой степени): X := 2 ^ 8; Деление чисел в Delphi может выполняться двумя способами. Для точных расчетов предназначен оператор /. Его результат - дробное число, полученное от деления левого числа на правое. В следующем примере переменной a будет присвоено значение 2,5: a := 10 / 4; Важно! Даже если результат вроде бы целый - например, 2: a := 10 / 5; при указании символа / всегда считается, что результат будет дробным. Поэтому если переменная iii определена как имеющая тип Integer (хранящая целые числа): var iii: Iteger; то использовать ее в операторе присваивания, где имеется символ дробного деления "/" запрещено! Так, елси записать iii := 10 / 2; то результат будет равен не 5 (целое) а 5.0000 (дробное), и в процессе работы программы возникнет ошибка (попытка записи дробного числа в переменную iii, предназначенную для хранения целых чисел). Во многих алгоритмах при делении требуется получать не число с плавающей запятой, а целое значение, в котором дробная часть заведомо отброшена. Но ведь общепринятый символ деления / у нас уже занят! Как же быть? Подобных операций в Delphi достаточно много, поэтому сложно найти для всех них подходящее количество специальных символов. В этой связи некоторые операции, ориентированные на использование в выражениях, записываются не с помощью одного символа, а в виде короткой последовательности букв. Это в частности оператор Div. Он возвращает целое число - результат от деления левого значения на правое. После выполнения следующего оператора iii := 10 Div 3; переменной iii будет присвоено целое значение 3 корректного целого типа. Ведь если разделить 10 на 3, то получится 3 и в остатке 1. Остаток отбрасывается, а значение 3 заносится в iii. В Delphi существует операция изменения знака числа (она записывается также, как и оператор вычитания - "-"), которому нужны не два значения для получения итогового результата, а одно. Он ставится слева от некоторого значения или выражения, а результат его равен этому значению, только с противоположным знаком. Так, в следующей последовательности
I := 2 + 9; переменная KLM получит отрицательное значение -11 (значение переменной I, равное +11, взятое с обратным знаком). На самом деле можно и знак "+" использовать наравне с "-", только плюс ничего не делает - никаких знаков не меняет, конечно. Нужен он только для наглядности :)
A := +2; Может, сами попробуете теперь записать программу расчета личной триграммы из 16-го выпуска? Пока раздельно для мужчины и женщины. Кстати, спрашивают, какой в ней смысл? :) После того, как найдена ваша личная цифра квадрата Ло-Шу и соответствующее ей одно из 8 направлений света (восток, юго-запад итд), по этому направлению смотрите триграмму (их восемь базовых) и ее связь с образом жизни человека. Кому интересно, можете более подробно почитать вот тут например: http://www.altamebel.ru/lib/content.php?id=96&parent=11 Дожили: робот пьёт пиво. Не может быть? Ещё как может. Ну, и зачем он такой нужен? Только для того, чтобы пить пиво. Впрочем, создатели думают, что любовь к пенному напитку делает робота подобным человеку. Тому самому человеку, который пьёт пиво и ни черта не делает. Он заботится только о себе. Единственная цель его существования состоит в том, чтобы пить пиво. Чтобы достичь этой цели, они сидит в барах в обществе людей и имеет дело с деньгами. Он выпрашивает у людей монеты и тратит их на пиво, как только собирает достаточную сумму. Такой робот абсолютно бесполезен для человечества. Скорее, это он использует людей для собственной выгоды, для своих очень эгоистичных целей. Кроме того, робот, как настоящий свинтус, бросает пустую банку на пол... http://www.membrana.ru/articles/technic/2004/10/15/212200.html (c) 2004 Сергей Бобровский bobrovsky@russianenterprisesolutions.com
Школа программирования с нуля
Все предыдущие выпуски базового курса тут:
А перекачать их одним архивом можно отсюда: |
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.prognull |
Отписаться |
В избранное | ||