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

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

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

 
 Ответить  Открыть новую тему 
> Какой оптимальный алгоритм ?, для перевода string в integer
сообщение
Сообщение #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 -


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

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


Гость






Цитата
я не писал коменты в проге, так что вы её не поймёте просто помогите найти ошибку.
Ошибку, извини, показывает тебе компилятор... Не НАМ, а ТЕБЕ, потому как где у тебя в это время находится курсор - видно ТЕБЕ, но его нет на скрине...

Google -> "форум телепатов", там тебе смогут помочь...

Что касается перевода строки в число - то вообще-то есть стандартная процедура Val, но если хочется свой самокат, то конечно можно и состряпать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


volvo, курсор на скрине видно ... специально сделал так скрин smile.gif

y:=exp(ln(10)*i); курсор ...

и это тока поскриптум, а поподробней про val, моно?

Добавлено через 14 мин.
спасибо, что подсказал про val, гугля помог ввв.pascaler.ru/pascal/lines/lines_4.html за рекламу тока не сочтите.

остался постскриптум ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(mrVoodoo @ 26.11.2007 21:34) *
остался постскриптум ...
Путано ты изъясняешься, однако.. Но если тебе еще нужно про ошибку, то ты пытаешься присвоить значение типа real величине типа integer. Это просто так делать нельзя. Для этого есть специальные функции:

Function Round (R: Real) : LongInt Округляет значение R вещественного типа до ближайшего целого.
Function Trunc(R: Real): LpngInt Усекает значение вещественного типа до значения типа LongInt путем отбрасывания дробной части.

Воспользуйся той из них, которая тебе подходит.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


спасибо, вообще то мне любую можно брать, так как там число будет полюбому целое.

__________________________
тему моно клоуз.

P.S. задачка то олимпиадная .

Сообщение отредактировано: mrVoodoo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 18.04.2024 21:41
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name