|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.01.2021, 00:00 | #1 |
Регистрация: 09.12.2020
Сообщений: 5
|
Вопрос по Pascal
Как можно заставить программу опеределять тип переменного ?
Допустим введенно A и нужно заставить программу определить тип переменной на основании введенного значения |
06.01.2021, 09:27 | #2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
А никак. И зачем это?
В Паскале используется статическая типизация. Тип данных определяется на стадии написания кода. В процессе работы компилятора, на стадии создания объектного файла, несоответствие типов проверяется. Другое дело, если определить ввод чисел через строковые переменные и далее преобразовывать их к соответствующему типу. Для этого есть функции/процедуры, которые выполняют преобразование строкового представления в вещественное. Также есть функции, которые преобразуют тип данного, например, из вещественного сделать целое или наоборот. Функции преобразования типов можно использовать с директивами компилятора для контроля возможных ошибок. Откройте последние страницы (стр.344) книги Т.А. Павловская, Программирование на ЯВУ. Паскаль. Электронная версия была в списке литературы соответствующего раздела. PS: В случае, когда вы желаете предотвратить ввод пользователем некорректных данных, используйте директивы компилятора, что бы перехватить ошибку. Это позволит корректно обработать ошибку в программе, а не отдавать её [программу] на "растерзание" ОС.
Как-то так, ...
|
06.01.2021, 14:59 | #3 |
Регистрация: 09.12.2020
Сообщений: 5
|
ViktorR, Спасибо большое! Сам не понимаю зачем это нужно Столкнулся с таким заданием на школьной олимпиаде
|
06.01.2021, 20:41 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Напомнило один научный анекдот.
Одна дама удивляется: "Я понимаю - учёные могут определить массу звезды, яркость, расстояние до неё. Но как они узнают её НАЗВАНИЕ?" Неужели всамделе на олимпиадах задают такой бред? Вот я ввёл "3<Enter>". Вообще-то это строка. Но куда, в кого пойдёт этот ввод - зависит от контекста оператора ввода: целое, вещественное, элемент множества или так и останется - просто строкой. |
06.01.2021, 23:04 | #5 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,330
|
Цитата:
Вместе с тем, существуют языки программирования с динамической типизацией данных. Например, Python. В этом языке есть функция (type()), которая позволят получить тип данных на который ссылается переменная. Обрати внимание, что в случае статической типизации переменная - это метка (лэйба), на "ящике" в котором хранится значение. Этот "ящик" строится компилятором либо как типовой, либо по заданию программиста, например, "ящик" для хранения массива данных или "ящик" для хранения составного объекта, такого, как запись (record). Сложные структуры выстраиваются из типовых. В Паскале и Си можно получить адрес по которому расположен такой "ящик" - указатель. В случае динамической типизации переменная - это ссылка (адрес, указатель), по которому хранится объект, в котором хранится значение. В этом случае объект представляет собой более сложную конструкцию.
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по pascal'ю АВС. | daniil-640 | Помощь студентам | 1 | 14.09.2012 14:40 |
Pascal, вопрос по коду. | Wizard_Adeptus | Помощь студентам | 2 | 22.05.2012 11:00 |
Вопрос по коду(Pascal) | DeFt | Помощь студентам | 6 | 09.06.2009 21:20 |
Вопрос по Pascal. | NitriNKa | Помощь студентам | 5 | 03.05.2009 20:50 |
Вопрос по PASCAL | xxasb07 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 19.11.2008 12:21 |