Программа Pascal ABC

Аватара пользователя
Автор темы
Мариам
Костяк форума
Костяк форума
Всего сообщений: 1731
Зарегистрирован: 07.12.2012
Моя будущая профессия: врач-педиатр
Любимый школьный предмет: математика (особенно геометрия), химия
Откуда: Беларусь
Возраст: 29
Контактная информация:
 Программа Pascal ABC

Сообщение Мариам »

Мы каждый год проходим эту программу по информатике. У меня с ней никогда не было проблем, но в этом году я не понимаю как делать некоторые задания (тема: строковые величины). 8-/) Кто-нибудь может мне помочь? :oops:
"Убираем учебники! Берем двойные листочки!" – самые страшные слова моего детства.
Лунтик
Я здесь новичок
Я здесь новичок
Всего сообщений: 2
Зарегистрирован: 21.12.2012
Откуда: Россия
Контактная информация:
 Re: Программа Pascal ABC

Сообщение Лунтик »

А в чем задания состоят? :)
Аватара пользователя
Автор темы
Мариам
Костяк форума
Костяк форума
Всего сообщений: 1731
Зарегистрирован: 07.12.2012
Моя будущая профессия: врач-педиатр
Любимый школьный предмет: математика (особенно геометрия), химия
Откуда: Беларусь
Возраст: 29
Контактная информация:
 Re: Программа Pascal ABC

Сообщение Мариам »

Мы составляем алгоритмы с использованием строковых величин. Например, надо составить программу, которая находит сумму цифр введенного натурального числа. 8-/)
"Убираем учебники! Берем двойные листочки!" – самые страшные слова моего детства.
Лунтик
Я здесь новичок
Я здесь новичок
Всего сообщений: 2
Зарегистрирован: 21.12.2012
Откуда: Россия
Контактная информация:
 Re: Программа Pascal ABC

Сообщение Лунтик »

Сразу немножко оговорюсь, не знаю всех тонкостей именно Pascal ABC, но постараюсь говорить о стандартах языка Pascal.

Строка -- последовательность символов. В паскале есть тип данных string, который определяет строку из произвольного количества символов в интервале от 0 до 255. Т.е. длина строки может быть произвольной, но не более 255 символов.
Можно в цикле обращаться к отдельному элементу строки по ее индексу(порядковому номеру). Массивы проходили? Если да, то принцип тот же. Строка трактуется как цепочка символов.

В основном для работы со строками сущеcтвуют стандартные функции Length, Delete, Copy, Pos, Concat, Str, Val. Известны? Или они в АВС называются как-то по-другому? По ним есть вопросы?

Один элемент строки -- символ. То есть если введена строка st '1234', то st[2] = '2'. Это символ '2', а не цифра 2. У каждого символа есть свой код в таблице символов. Про них известно? Или дальше лучше не продолжать?

Так вот при решении задачи с определением суммы цифр получается примерно следующий фрагмент.
var
i, a:integer;
st:string;
begin
// ввод строки
// инициализация начального значения переменной для хранения суммы цифр
a := 0;
for i:= 1 to Length(st) do
a := a + Ord(st) - Ord('0');
end;

Такой код в случае, если мы обрабатываем коды символов из таблицы. Т.к. знаем, что у символа '1' код на 1 больше, чем у символа '0', то мы в результате разности Ord(st) - Ord('0') получаем само значение цифры. Ord(x) возвращает значение кода символа х.

Если мы обрабытываем всю строку целиком, то используем функцию Val(строка, число, код ошибки). Процедура пытается преобразовать строку в число, если не получается, то код ошибки ненулевой, если возможно, то код ошибки = 0, а в одном из параметров будет число, т.е. строка '123' будет преобразована в число 123. Затем уже определяются цифры и их сумма. Код будет примерно таким
var
st : string;
a, code, b, sum : integer;
begin
// ввод строки
val(st,a,code);
sum := 0;
while a <> 0 do
begin
b := a mod 10;
sum := sum + b;
a := a div 10;
end;

Жду еще вопросы. В Паскаль АВС есть это все, или там что-то несколько другое?
Аватара пользователя
Автор темы
Мариам
Костяк форума
Костяк форума
Всего сообщений: 1731
Зарегистрирован: 07.12.2012
Моя будущая профессия: врач-педиатр
Любимый школьный предмет: математика (особенно геометрия), химия
Откуда: Беларусь
Возраст: 29
Контактная информация:
 Re: Программа Pascal ABC

Сообщение Мариам »

Лунтик, спасибо! Все очень понятно :chelo: :good:
"Убираем учебники! Берем двойные листочки!" – самые страшные слова моего детства.
Ответить Пред. темаСлед. тема

Вернуться в «Компьютер»