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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2021, 00:00   #1
Tim1664
 
Регистрация: 09.12.2020
Сообщений: 5
Вопрос Вопрос по Pascal

Как можно заставить программу опеределять тип переменного ?
Допустим введенно A и нужно заставить программу определить тип переменной на основании введенного значения
Tim1664 вне форума Ответить с цитированием
Старый 06.01.2021, 09:27   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

А никак. И зачем это?
В Паскале используется статическая типизация.
Тип данных определяется на стадии написания кода.
В процессе работы компилятора, на стадии создания объектного файла, несоответствие типов проверяется.

Другое дело, если определить ввод чисел через строковые переменные и далее преобразовывать их к соответствующему типу.
Для этого есть функции/процедуры, которые выполняют преобразование строкового представления в вещественное. Также есть функции, которые преобразуют тип данного, например, из вещественного сделать целое или наоборот.
Функции преобразования типов можно использовать с директивами компилятора для контроля возможных ошибок.
Откройте последние страницы (стр.344) книги Т.А. Павловская, Программирование на ЯВУ. Паскаль.
Электронная версия была в списке литературы соответствующего раздела.

PS: В случае, когда вы желаете предотвратить ввод пользователем некорректных данных, используйте директивы компилятора, что бы перехватить ошибку. Это позволит корректно обработать ошибку в программе, а не отдавать её [программу] на "растерзание" ОС.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 06.01.2021, 14:59   #3
Tim1664
 
Регистрация: 09.12.2020
Сообщений: 5
По умолчанию

ViktorR, Спасибо большое! Сам не понимаю зачем это нужно Столкнулся с таким заданием на школьной олимпиаде
Tim1664 вне форума Ответить с цитированием
Старый 06.01.2021, 20:41   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Напомнило один научный анекдот.
Одна дама удивляется: "Я понимаю - учёные могут определить массу звезды, яркость, расстояние до неё. Но как они узнают её НАЗВАНИЕ?"
Неужели всамделе на олимпиадах задают такой бред? Вот я ввёл "3<Enter>". Вообще-то это строка. Но куда, в кого пойдёт этот ввод - зависит от контекста оператора ввода: целое, вещественное, элемент множества или так и останется - просто строкой.
digitalis вне форума Ответить с цитированием
Старый 06.01.2021, 23:04   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Цитата:
Столкнулся с таким заданием на школьной олимпиаде
Думаю понятно как можно ответить.

Вместе с тем, существуют языки программирования с динамической типизацией данных.
Например, Python.
В этом языке есть функция (type()), которая позволят получить тип данных на который ссылается переменная.
Обрати внимание, что в случае статической типизации переменная - это метка (лэйба), на "ящике" в котором хранится значение. Этот "ящик" строится компилятором либо как типовой, либо по заданию программиста, например, "ящик" для хранения массива данных или "ящик" для хранения составного объекта, такого, как запись (record). Сложные структуры выстраиваются из типовых.
В Паскале и Си можно получить адрес по которому расположен такой "ящик" - указатель.

В случае динамической типизации переменная - это ссылка (адрес, указатель), по которому хранится объект, в котором хранится значение. В этом случае объект представляет собой более сложную конструкцию.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по 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