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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2017, 22:40   #1
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию Простая задачка

Дано двуцифровое число, вычислить сумму его цифр
Код:
var
a:byte;
begin
read(a);
write(a div 10 + a mod 10);
end.
Что я делаю не так?
dimon_snake вне форума Ответить с цитированием
Старый 22.01.2017, 23:10   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от dimon_snake Посмотреть сообщение
Что я делаю не так?
Да вроде все так. Если числа - только целые и положительные.
Только вставь ReadLn; перед end. . Чтоб сразу окошко не закрывалось.
type_Oleg вне форума Ответить с цитированием
Старый 22.01.2017, 23:11   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А в чём у вас проблема?
Вадим Мошев вне форума Ответить с цитированием
Старый 23.01.2017, 05:48   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
var
   a:byte;
begin
   readln(a);
   writeln(a div 10 + a mod 10);
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 23.01.2017, 21:43   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Цитата:
А в чём у вас проблема?
У него проблема тут:
Код:
begin
read(a);
write(a div 10 + a mod 10);
end.
При чтении данных с клавиатуры следует использовать readln(), поскольку read() оставляет в буфере служебный код от Enter.
Процедура read() полезна при чтении данных из файла, например, когда через файл инициализируется матрица: данные записаны в текстовый файл в матричном представлении:
Код:
m n
a11 a12 a13 ... a1n
a21 a22 a23 ... a2n
......
am1 am2 am3 ... amn
Первые два значения читаем через readln(), затем в цикле считываем n-1 элемент через read(), а n-ый - через readln() и т.д.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 23.01.2017, 22:43   #6
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
А в чём у вас проблема?
Нашел задание
Написал вот этот код
Отправляю - 50%
Не могу понять, в чем там может быть ошибка
Цитата:
Сообщение от ViktorR Посмотреть сообщение
У него проблема тут:
Код:
begin
read(a);
write(a div 10 + a mod 10);
end.
При чтении данных с клавиатуры следует использовать readln(), поскольку read() оставляет в буфере служебный код от Enter.
Процедура read() полезна при чтении данных из файла, например, когда через файл инициализируется матрица: данные записаны в текстовый файл в матричном представлении:
Код:
m n
a11 a12 a13 ... a1n
a21 a22 a23 ... a2n
......
am1 am2 am3 ... amn
Первые два значения читаем через readln(), затем в цикле считываем n-1 элемент через read(), а n-ый - через readln() и т.д.


Как-то так, ...
Да нет, что read, что readln - одинаково
А эта программа подойдет и для отрицательного двуцифрового числа?
Просто, когда используешь тип byte, то выдает ошибку компиляции, а когда integer - неправильный ответ.

Последний раз редактировалось dimon_snake; 23.01.2017 в 22:53.
dimon_snake вне форума Ответить с цитированием
Старый 23.01.2017, 22:52   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от dimon_snake Посмотреть сообщение
Не могу понять,
Я тоже. У меня все работает. Я тупо скопировал, вставил в Geany, все норм.
А ты до сих пор не можешь объяснить, что именно не так..
Изображения
Тип файла: png ge.PNG (30.9 Кб, 148 просмотров)
type_Oleg вне форума Ответить с цитированием
Старый 23.01.2017, 22:58   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Дано двуцифровое число, вычислить сумму его цифр
Ну двухцифровое число может быть и отрицательным. Почему нет? Тогда a: smallint и работать с abs(a)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.01.2017, 23:01   #9
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ну двухцифровое число может быть и отрицательным. Почему нет? Тогда a: smallint и работать с abs(a)
Да, действительно
Благодарю!
dimon_snake вне форума Ответить с цитированием
Старый 23.01.2017, 23:03   #10
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А вот в Delphi пришлось заменить read(a) на readLn(a) как писал ViktorR.
Иначе закрывалось, несмотря на еще один ReadLn в конце.
Изображения
Тип файла: png delph.PNG (27.3 Кб, 52 просмотров)
type_Oleg вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая задачка. Andrey291 Паскаль, Turbo Pascal, PascalABC.NET 3 05.10.2016 13:40
простая задачка simonte Помощь студентам 2 06.12.2013 00:17
Простая задачка stomp Общие вопросы C/C++ 4 02.05.2009 04:00
Простая задачка Dukalis Общие вопросы C/C++ 1 13.01.2008 18:10