![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Zoom |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Виталий Репутация: ![]() ![]() ![]() |
Дан массив из 5 вещественных чисел в нём надо найти элемент в котором наибольшее кол-во подряд идущих нулей нулей.
|
![]() ![]() |
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не вижу проблемы.
Как вариант: Взять дробную часть (Frac). Перевести ее в строку (str). А уж нахождение "наибольшее кол-во подряд" решалось много-много раз. Поиск Вам поможет. |
Zoom |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Виталий Репутация: ![]() ![]() ![]() |
Пользоваться строками запрещено. Пытаюсь перевести число в целое путём умножения его на 10 в цикле а потом с помощью div и mod находить каждый символ в числе. Но проблема почему то после выполнения числа получаются аж в 12 степени
Код Program asd; uses crt; var i,k,y:longint; s,s1:string; a:array[1..4] of real; begin clrscr; writeln('Vvedite 4 chisla'); For i:=1 to 4 do begin readln(a[i]); while frac(a[i])<>0 do a[i]:=a[i]*10; end; For I:=1 to 4 do {y:=round(a[i]);} writeln(a[i]); end. Сообщение отредактировано: Zoom - 22.03.2008 17:19 |
Ozzя |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Целую часть - отдельно. Дробную - отдельно.
Дробную - умножением на 10 и переводом в целое. Далее выделяешь остатки от деления нацело (mod) и проверка. |
Zoom |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Виталий Репутация: ![]() ![]() ![]() |
А не подскажите ли условие при котором проверяется достигла ли дробная часть целого числа, а то я понял что frac не подходит в цикле с предусловием?
|
andriano |
![]()
Сообщение
#6
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Опять условие предполагает уточнение, которое какжется очевидным всем кроме меня?
Если речь идет о числе, а не о его текстовой записи, то нули могут быть только одного вида - двоичные. Т.е. число следует проверять поразрядно на количество подряд идущих разрядов, установленных в 0. |
Client |
![]()
Сообщение
#7
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата А не подскажите ли условие при котором проверяется достигла ли дробная часть целого числа, а то я понял что frac не подходит в цикле с предусловием? Т.е. если было 0,123 то тебе надо чтоб стало 123? тогда
while frac(x)>0 do x:=x*10Так, на этом же примере цикл выполнился больше раз чем нужно, поэтому можно записать while frac(x)>0.00000001 do x:=x*10 Сообщение отредактировано: Client - 22.03.2008 19:26 |
Zoom |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Виталий Репутация: ![]() ![]() ![]() |
Можь кто скажет почему у меня после умножения дробной части на 10 , в ответе выводится число со степенью 12(мне стока ноликов не надо)
Код Program asd; uses crt; var i,k:longint; x,y,z:real; s:string; a:array[1..4] of real; begin clrscr; writeln('Vvedite 4 chisla'); For i:=1 to 4 do begin readln(a[i]); y:=frac(a[i]); x:=int(a[i]); While frac(y)>0 do begin y:=y*10; end; writeln(x,' ',y); end; end. Сообщение отредактировано: Zoom - 22.03.2008 19:28 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 3:01 |