IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Какой оптимальный алгоритм ?, для перевода string в integer
mrVoodoo
сообщение 26.11.2007 21:21
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


вот понадобилось написать программу для перевода из стринг в интегер, сразу скажу что в стринг тока циферки.

вот что мне пришло первое в голову:

var
a:string;
b,i,y,v:integer;
begin
readln(a);
{ввели число}
for i:= length(a) downto 1 do (*начало цикла который будет перебирать все цифры чмсла в обратном порядке*)
begin
y:=exp(ln(10)*i);
(*возводим 10 в степень i*)
w:=w+1; (*это типа ещё одного цикла но тока он считает в обратном порядке*)
v:=ord(a[w])-ord(0); (*ну вот собственно превращение, из кода нужной цифры вычитаем код нуля и выходит нужная цифра, но уже в интегере*)
b:=b+(v*y); (*создаём само число, постепенно прибавляя к нему наименьшее, т.е. 1000+300+80+5*)
end;



ну вот так этот код выглядет более рабочим, но если его использовать в больших задачах типа :

Код
Таймер.

Таймер - это часы, которые умеют подавать звуковой сигнал по прошествии некоторого периода времени. Напишите программу, которая определяет, когда должен быть подан звуковой сигнал.
Формат входных данных
В первой строке входного файла записано текущее время в формате ЧЧ:ММ:СС (с ведущими нулями). При этом оно удовлетворяет ограничениям: ЧЧ - от 00 до 23, ММ и СС - от 00 до 60.
Во второй строке записан интервал времени, который должен быть измерен. Интервал записывается в формате Ч:М:С (где Ч, М и С - от 0 до 109, без ведущих нулей). Дополнительно если Ч=0 (или Ч=0 и М=0), то они могут быть опущены. Например, 100:60 на самом деле означает 100 минут 60 секунд, что то же самое, что 101:0 или 1:41:0. А 42 обозначает 42 секунды. 100:100:100 - 100 часов, 100 минут, 100 секунд, что то же самое, что 101:41:40.
Формат выходных данных
В выходной файл выведите в формате ЧЧ:ММ:СС время, во сколько прозвучит звуковой сигнал. При этом если сигнал прозвучит не в текущие сутки, то дальше должна следовать запись +<кол во> days. Например, если сигнал прозвучит на следующий день - то +1 days.
Примеры
a.in
01:01:01
48:0:0
a.out
01:01:01+2 days
a.in
01:01:01
58:119
a.out
02:01:00
a.in
23:59:59
1
a.out
00:00:00+1 days



то что тогда ? неужели нет нечего лучше?


P.S.
далее я начал писать программу для задачи выше (смотрите прикреплённые файлы), но вылезла ошибка (скрин прикрепил), я не знаю как её исправить, кто поможет тому огромное спасибо!
я не писал коменты в проге, так что вы её не поймёте просто помогите найти ошибку.

Добавлено через 3 мин.
исправил опечатку в примере, сильно не придерайтесь я этот пример тока что написал, чтоб объяснить принцип того что надо.

Сообщение отредактировано: mrVoodoo - 26.11.2007 21:26


Эскизы прикрепленных изображений
Прикрепленное изображение

Прикрепленные файлы
Прикрепленный файл  TAIMER.PAS ( 2.16 килобайт ) Кол-во скачиваний: 247
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 19:09
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"