Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2022, 13:40   #1
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию что делает ord().

есть код
Код:
var
i: integer; // объявляем
begin
n := 0; // объявляем в 10 системе
for i := 1 to Length(s) do //цикл Length(s) определяет текущую длину строки
if s[i] in ['0'..'7'] // от 0 до 7 могу ввести число
then n := n * 8 + ord(s[i]) - ord('0') // 
else exit; // выход
vosem := true;
end;

var
s: string; // объявление
n: longint; // объявление
begin
Write('Введите число в восьмеричной системе: '); ReadLn(s); // вывод
if vosem(s, n) // вызов функции
then WriteLn(s, '(8) = ', n, '(10)') // вывод 8 и 10
else
WriteLn('*** Плохое число'); // вывод
end.
Что делает
then n := n * 8 + ord(s[i]) - ord('0') что в i и для чего - ord('0').
Нужно было и 8 в 10 систему счисления.
REZR вне форума Ответить с цитированием
Старый 12.05.2022, 13:44   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от REZR Посмотреть сообщение
Что делает
Первращает строку в число

Цитата:
Сообщение от REZR Посмотреть сообщение
что в i
Код:
for i := 1 to Length(s) do //цикл Length(s) определяет текущую длину строки
Цитата:
Сообщение от REZR Посмотреть сообщение
для чего - ord('0').
Чтобы превратить символ в цифру
ForenLi вне форума Ответить с цитированием
Старый 12.05.2022, 15:11   #3
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Первращает строку в число


Код:
for i := 1 to Length(s) do //цикл Length(s) определяет текущую длину строки

Чтобы превратить символ в цифру
функция ord() еще вроде переводит его в ASCII код. потом как-то считает вроде.
REZR вне форума Ответить с цитированием
Старый 12.05.2022, 15:14   #4
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию

Цитата:
Сообщение от REZR Посмотреть сообщение
функция ord() еще вроде переводит его в ASCII код. потом как-то считает вроде.
а можно без ord и while с read написать код более легче.
REZR вне форума Ответить с цитированием
Старый 12.05.2022, 15:22   #5
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от REZR Посмотреть сообщение
функция ord() еще вроде переводит его в ASCII код. потом как-то считает вроде.
Переводит и все. Не считает.

Цитата:
Сообщение от REZR Посмотреть сообщение
а можно без ord и while с read написать код более легче.
Пишите и покажите пример, как без цикла и с уже данной строкой и read это сделать.
ForenLi вне форума Ответить с цитированием
Старый 12.05.2022, 15:45   #6
macomics
Форумчанин
 
Регистрация: 17.04.2022
Сообщений: 878
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Первращает строку в число
Такой магии даже в Хогвартс не научат
Цитата:
Сообщение от REZR Посмотреть сообщение
а можно без ord и while с read написать код более легче.
Легче - это когда за вас код кто-то уже написал, а вы им воспользовались.
Вам задание дали для того, чтобы вы научились выполнять вручную это преобразование.
macomics на форуме Ответить с цитированием
Старый 12.05.2022, 16:09   #7
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,097
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Чтобы превратить символ в цифру
Да, вроде опытный товарищ и много дельных советов дал, а тут...
Ord (от Order) - номер позиции символа (цифры, буквы,служебного - не важно) в таблице ASCII, т.е. число, являющееся кодом символа.
Ord (@) = 0x40 = 64
Цифра и Число - are not the same thing

Последний раз редактировалось digitalis; 12.05.2022 в 16:17.
digitalis вне форума Ответить с цитированием
Старый 12.05.2022, 16:20   #8
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Да, вроде опытный товарищ и много дельных советов дал, а тут...
Т.е. если в строке число, то Ord(s[ i ]) - Ord('0') даст число? И больше 10?
ForenLi вне форума Ответить с цитированием
Старый 12.05.2022, 16:28   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,097
По умолчанию

Да !
http://www.delphibasics.ru/Ord.php
Ord('0') = 0х60 = 48
digitalis вне форума Ответить с цитированием
Старый 12.05.2022, 16:30   #10
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Да !
Вы после праздников отходите или посты не читаете? Чему равны:
Ord('0') - Ord('0')
Ord('1') - Ord('0')
Ord('2') - Ord('0')
Ord('3') - Ord('0')
Ord('4') - Ord('0')
Ord('5') - Ord('0')
Ord('6') - Ord('0')
Ord('7') - Ord('0')
Ord('8') - Ord('0')
Ord('9') - Ord('0')
?
ForenLi вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обьясните пожалуста как и что делает эта программа и почему она это делает. Dimka-novitsek Общие вопросы C/C++ 7 16.10.2013 12:02
что делает код (VBA) SL1M_DOGG Microsoft Office Excel 1 11.03.2012 20:06
ЧО ДЕЛАЕТ вадя 22 Софт 1 11.11.2010 19:57
Что делает тэг <o:p> VistaSV30 HTML и CSS 1 29.08.2010 08:30
Печать. Что делает MS и не делает Delphi Влад12 Общие вопросы Delphi 8 05.05.2010 20:04