Важная информация
Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 48

Тема: Язык для начинающих Бегин

  1. #11  
    Модератор Аватар для pingvin
    Регистрация
    11.02.2011
    Сообщений
    389
    Сказал(а) спасибо
    80
    Поблагодарили 75 раз(а) в 48 сообщениях
    Я вот не знаю как сделать вложенные циклы и условия, и что-бы условия были с "и","или". "И" можно сделать с помощью вложенного условия, но как это сделать?
    Ответить с цитированием  
     

  2. #12  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Почти в любом языке для оператора If подразумевается лишь одно условие - если правда, или если ложь. Например, на С это будет выглядеть так:
    Код c:
    if (a==b) || (a>=b+100) {
        ....
    }
    Вам может показаться, что условий 2. Это действительно так. Однако по сути, после проверки этих двух условий, результатом будет или истина, или ложь.
    Например A = 10; B = 10;. (A==B) - истина. (A>=B+100) - ложь. Истина || Ложь = Истина. Итого условие выполнено, можно выполнять весь блок if.
    Я про то, что оценкой условия должен заниматься интерпретатор математических выражений. Примерно так же это происходило в моем LeftCalc:
    Код :
    Dim A,B
    (A=B) or (A>=B+100) (ответ будет равен 1, что в LC - истина)
    А оператор IF будет иметь дело лишь с истиной или ложью. Если истина, то можно будет выполнять тело IF. Тоже самое относится так же и к циклам с предусловием, и в принципе, с постусловием.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #13  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    pingvin, раскопал хорошую статью, которая рассказывает подробно о написании интерпретаторов на языке C - ознакомься на досуге - там все хорошо описано, в том числе проблема условий и циклов. Причем начинается все как раз с интерпретатора математических выражений - потому что это база, без которой ничего не будет, если только мы не пишем что либо вроде степлера
    Там используется модель синтаксического анализатора рекурсивного спуска. Для меня алгоритм показался в свое время запутанным и сложным, и я все делал через "сортировочную станцию" и обратную польскую запись - тоже неплохо получалось. Ну, вот:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Дружба-магия-радость!
    Ответить с цитированием  
     

  4. #14  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Это Герберд Шилдт.
    У меня есть большая его книга "полный справочник по с" В ней он кроме описания с описывает создание интерпретатора языка Little C- урезонного варианта С
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  5. #15  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Переменные можно сделать так:
    Два массива. В первом - имена переменных. Во втором - значения.
    При объявлении имя добавляется в первый массив.
    А как делать разные типы переменных, завести разные типы массивов?
    Ответить с цитированием  
     

  6. #16  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Цитата Сообщение от Dimon012 Посмотреть сообщение
    А как делать разные типы переменных, завести разные типы массивов?
    Да. Типа массив CHARS, INTEGERS, REALS. Также таком случае нужен ещё массив TYPES, в котором содержится информация о типе этой переменной.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  7. #17  
    Модератор Аватар для pingvin
    Регистрация
    11.02.2011
    Сообщений
    389
    Сказал(а) спасибо
    80
    Поблагодарили 75 раз(а) в 48 сообщениях
    А что-а CHARS, INTEGERS, REALS?
    Ответить с цитированием  
     

  8. #18  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Названия массивов, которые содержат переменные соответтвующих типов.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  9. #19  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Цитата Сообщение от Kakos_nonos Посмотреть сообщение
    Да. Типа массив CHARS, INTEGERS, REALS. Также таком случае нужен ещё массив TYPES, в котором содержится информация о типе этой переменной.
    Можно обойтись и без массива Types.
    Просто, при сканировании блока объявлений переменных, один раз рассовываем переменные по своим местам в массиве. Даже переменные разных типов не могут иметь одинаковое имя. Потом, например, при встрече названия переменной в массиве, просто сканируем наши массивы, и находим в них переменную с таким именем.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  10. #20  
    Модератор Аватар для pingvin
    Регистрация
    11.02.2011
    Сообщений
    389
    Сказал(а) спасибо
    80
    Поблагодарили 75 раз(а) в 48 сообщениях
    Вот что я раздобыл:
    "Программа --- это и есть выражение, только операций там много больше чем в арифметике, и записываются они не только в виде
    A + B (A операция B)
    но еще
    if A then B (операция A операция B)
    а бывает еще
    int A (операция A)"
    Ответить с цитированием  
     

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Книга: СТЕПЛЕР. Язык программирования.
    от Kakos_nonos в разделе Степлер
    Ответов: 12
    Последнее сообщение: 23.03.2013, 06:43
  2. Рассылка QBASIC для начинающих
    от Konstantin Shcherba в разделе Архив
    Ответов: 0
    Последнее сообщение: 24.11.2010, 19:52
  3. Задачи для начинающих
    от BukTop2009 в разделе QBasic
    Ответов: 1
    Последнее сообщение: 23.11.2010, 00:39
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •