Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2014, 13:48   #1
lighting
Новичок
Джуниор
 
Регистрация: 16.05.2014
Сообщений: 9
По умолчанию О том, "как" и "почему"

Здравствуйте,
Хотелось бы воспользоваться вашей помощью по очень беспокоящему меня вопросу, на который сам я ответить к сожалению не смог. Вопрос заключается в следующем.
В языках программирования есть свои какие-то определённые правила, свои определённые слова, которые означают то или иное понятное действие для компьютера и т.п. К примеру, обычное человеческое понятие "да" в компьютерном языке принимается как сравнение одного с другим, и на анализе этой информации идёт определение того, ложное или верное значение чего-либо. Так вот мой вопрос заключается как раз в том, как это происходит с другими элементами кода, к примеру с лупом if. Т.е. по аналогии с "да" я не могу в силу вероятного отсутствия знаний в языке(или я попросту дурак) понять как это происходит. Т.е. если в случаи с "да" было сравнение и на этой базе определение, то что же тут? Или моё понимание в общем и целом неверное? Помогите пожалуйста разобраться.
lighting вне форума Ответить с цитированием
Старый 16.05.2014, 14:03   #2
Pavlov_yu
Пользователь
 
Регистрация: 22.02.2009
Сообщений: 65
По умолчанию

ну ты и нагородил. в каждом языке программирования есть зарезервированыые слова которые что то обозначают. в букварях они обычно указанны.
Pavlov_yu вне форума Ответить с цитированием
Старый 16.05.2014, 14:08   #3
lighting
Новичок
Джуниор
 
Регистрация: 16.05.2014
Сообщений: 9
По умолчанию

Павлов, первые строки моего пред. поста, специально для тебя.
Личная просьба к тебе: воздержись от комметнов в этой теме. Спасибо.
lighting вне форума Ответить с цитированием
Старый 16.05.2014, 14:12   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

все написано мало понятно, код не придится к да или нет.
if(a==b)
{
b:=a-b;
}
на русский переводится как: если a равно b тогда b присваиваем a минус b.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.05.2014, 14:23   #5
lighting
Новичок
Джуниор
 
Регистрация: 16.05.2014
Сообщений: 9
По умолчанию

Пепел, ну я даже не знаю... речь не об этом. Я же специально примером вопрос задал, что бы было легче для восприятия.

Если уж совсем пытаться упростить без выдирания с контекста, то можно сказать так:
как компьютер понимает что такое условие if.

Опять таки, не через скобки, а через понимание того, как работает сам язык программирования с компьютером. Хотя и тут без фанатизма на тему электроники.

Последний раз редактировалось Stilet; 16.05.2014 в 14:29.
lighting вне форума Ответить с цитированием
Старый 16.05.2014, 14:37   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как компьютер понимает что такое условие if.
Исходный код это обычные строки. Компьютер сравнивает их с имеющимся у него (а точнее у компилятора) словаря зарезервированных слов, и в зависимости от слова генерирует тот или иной код.
Вот к примеру из моей статьи о компиляторе:
Код:
function TAlisaKernel.PrepareOperation;
begin       Result:=nil;
// Не забудем что наш язык регистронезависимый, потому приведем имя оператора к нижнему регистру как бы он ни был написан.
 Oper:=AnsiLowerCase(Oper);
// Если оператор содержит имя ":=" то создать определенный класс
 if Oper=‘:=’ then   Result:=TAlisaSet.Create                   else
// Иначе попробовать следующую проверку
 if (Oper[length(Oper)]=‘=’)and(length(Oper)>1) then begin
   Result:=TAlisaSelfOper.Create;
   TAlisaSelfOper(Result).Operation:=copy(Oper,1,length(Oper)-1);
 end else
// и так далее по остальным операторам, зарезервированным словам
 if Oper=‘+’  then   Result:=TAlisaPlus.Create                  else
 if Oper=‘++’ then   Result:=TAlisaInc.Create                   else
 if Oper=‘–’ then   Result:=TAlisaDec.Create                   else
 if Oper=‘-’  then   Result:=TAlisaMinus.Create                 else
 if Oper=‘*’  then   Result:=TAlisaMul.Create                   else
 if (Oper=‘sin’)or(Oper=‘cos’)
  then Result:=TAlisaTranc.Create(Oper)                         else
 if pos(Oper,‘/ % div mod делить остаток’)<>0 then begin
    Result:=TAlisaDiv.Create;
    // Если нужно поделить и вернуть вещественное
    if (Oper=‘/’) then  TAlisaDiv(Result).TypeDiviation:=1;
    // Если нужно поделив взять остаток
    if (Oper=‘%’)or(Oper=‘mod’)or(Oper=‘остаток’) then  TAlisaDiv(Result).TypeDiviation:=2;
    // Если нужно поделить и вернуть только целое
    if (Oper=‘div’)or(Oper=‘делить’) then  TAlisaDiv(Result).TypeDiviation:=3;
 end
 ;
 if Result&lt;&gt;nil then
  Result.ParentKernel:=self;
end;
Тут идет обычное сравнение слова, и если оно равно чему-то выполняется определенный участок кода, отвечающий за это слово.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2014, 14:38   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Т.е. если в случаи с "да" было сравнение и на этой базе определение, то что же тут?
Тут тоже сравнение.
Вот например две строки:
ра87рпоарвалонпгукупролмовр
И помогите понять что такое алгоритм и какие элементы вычислительного процесса имеются?

Первая строка это 1 пост темы. Научитесь четко формулировать свои мысли. Это базовый принцип, без него Вы ничего понимать не будете. Как в школе по физике - есть какое-то мутное задание. Нужно его проанализировать и составить Дано:.
Здесь аналогично - пытайтесь выразить свои тараканы в голове так чтобы они стали понятны остальным. Тогда они станут и для Вас самих более понятны. Ну и моя скромная практика показывает, что спрашивающий очень часто знает ответ на вопрос. Но проблема в том, что он его просто задает. Если спрашивающего заставить отвечать на свой же вопрос, то очень часто находится и ответ.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 16.05.2014, 14:41   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от lighting Посмотреть сообщение
Пепел, ну я даже не знаю... речь не об этом. Я же специально примером вопрос задал, что бы было легче для восприятия.

Если уж совсем пытаться упростить без выдирания с контекста, то можно сказать так:
как компьютер понимает что такое условие if.

Опять таки, не через скобки, а через понимание того, как работает сам язык программирования с компьютером. Хотя и тут без фанатизма на тему электроники.
язык программирования с компьютером никак не работает.
а компилятор преобразует исходники в инструкции процессора.
и там уже идет все.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.05.2014, 14:45   #9
Pavlov_yu
Пользователь
 
Регистрация: 22.02.2009
Сообщений: 65
По умолчанию

Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
после написания кода, он компилируется компилятором в машинный код. а процессор выполняет инструкции кода.
Pavlov_yu вне форума Ответить с цитированием
Старый 16.05.2014, 14:50   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Мамма-миа, ёшкин кот!
Самый универсальный язык, это машинный язак процессора. Выражется в машиннызх кодах. Например 0а0651624.Для того,то чтобы это смог понять человук, был придуман язык псевдокода. Назвали его Ассемблер. Но, не стоит мысль на месте. Созали ОС и всё остальное. Просто лениво подымать истричекую бучу.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 16.05.2014 в 14:52.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04