Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 3

Как сделать проверку в строке "для дурака" с авто-заменой "," на "." - иначе вылетает

25.03.2016, 22:26. Показов 1960. Ответов 5

Студворк — интернет-сервис помощи студентам
Помогите в программу "запилить" проверку ввода символа (Base, Pawer) "для дурака" с авто-заменой ',' (естественно не читающейся) на соответствующую '.' ; Запутался окончательно с типами данных, поэтому то что накуралесил показывать не cтану, а в общем виде все выглядит так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program NumOfPower;
 
var Power: integer; {степень} 
var Base: double; {число}
 
function MyPower(Base:double; Power:integer):double; {непосредственно расчет}
 
var i:integer;
var rez:double; 
 
begin
 rez:= Base; 
for i:=1 toPower-1 do 
 rez:= rez * Base; 
result:=rez; 
end;
 
begin
 
write('Введите основание :');
 read(Base);
 
write('Введите степень :');
read(Power);
 
 if Power<0 then 
 
 begin
Power:=Power*(-1);
 write('Итог: число ', Base, ' в сепени ', Power, ' = ', 1/MyPower(Base, Power),';'); 
end
 
else
write('Итог: число ', Base, ' в сепени ', Power, ' = ', MyPower(Base, Power), ';');
 
end.
Добавлено через 40 минут
Из разряда "Я пытался":

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
program NumOfPower;
 
uses System;
 
var Strin:string;
var Power, i: integer;
var Base: double;
 
  function MyPower(Base:double; Power:integer):double;
   var i:integer;
   var rez:double;  
 
begin
 rez:= Base; 
 for i:=1 to Power-1 do 
 rez:= rez * Base; 
 result:=rez; 
end;
 
begin
 
  write('Введите основание :');
  read(Strin);
  
    for i:=length(Strin) downto 1 do
      begin
       if (Strin[i] = ',') then Strin[i] := '.' ;
      end;
    Base:= StrToInt(Strin);
 
     
  write('Введите степень :');
  read(Power);
  
  if Power<0 then 
    begin
     Power:=Power*(-1);
     write('Итог: число ', Base, ' в сепени ', Power, ' = ', 1/MyPower(Base, Power),';');
    end
  else
  write('Итог: число ', Base, ' в сепени ', Power, ' = ', MyPower(Base, Power), ';');
     
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2016, 22:26
Ответы с готовыми решениями:

Как сделать проверку на 'дурака'
Например задача Чтобы предсказать судьбу человека, нумеролог берет время жизни человека в секундах, затем складывает все цифры этого...

Сделать проверку на дурака
Здравствуйте! Я новенький в программировании и не совсем понимаю как сделать проверку на дурака при вводе чисел. Например если человек...

Сделать проверку ввода от дурака в Builder
Всем привет.Вообщем задача сделать программу ,которая решает квадратные уравнения . Главное условие : чтобы при вводе букв , программа...

5
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.03.2016, 11:37
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от kanapylka Посмотреть сообщение
"запилить" проверку ввода символа
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var Power,code: integer; {степень} 
     Base: double; {число}
     s:string;
...........................
repeat
write('Введите основание :');
readln(s);
val(s,base,code);
if code<>0 then writeln('Введите действительное число');
until code=0;
repeat
write('Введите степень :');
readln(s);
val(s,Power,code);
if code<>0 then writeln('Введите целое число');
until code=0;
1
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,460
26.03.2016, 12:17
Для действительного числа ещё можно добавить:
Pascal
7
readln(s); if pos(',', s) > 0 then s[pos(',', s)] := '.';
0
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 3
29.03.2016, 12:54  [ТС]
У меня все же проблема, я пишу в WDE среде (http://pascalabc.net/WDE/) в общем и не могу преобразовать string в double, т.е. вернуть нужный тип данных, мол в double нуждаюсь я.
Метод Double.Parse не работает
0
Модератор
10448 / 5739 / 3407
Регистрация: 17.08.2012
Сообщений: 17,460
29.03.2016, 23:00
kanapylka, а что, в этой самой wde процедура val перестала работать?
0
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 3
01.11.2016, 11:09  [ТС]
Я не заметил, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.11.2016, 11:09
Помогаю со студенческими работами здесь

При попытке сделать проверку на дурака код ломается
Суть же задачи состоит в том, чтобы в массиве после первого положительного элемента высчитывать сумму всех последующих. Без проверки на...

как устроить проверку на дурака
Я не могу понять как устроить проверку на дурака. Мне надо, чтобы пользователь при использовании scanf вводил числа, а не символы.Как это...

Как правильно написать проверку на дурака
Добрый вечер уважаемые программисты! Облазил интернет в поисках информации и не нашел ничего что бы меня подтолкнуло правильно написать...

Как сделать проверку на наличие пробелов в строке ?
...

как сделать проверку на числа, спец символы, пробелы в строке
как сделать проверку на числа, спец символы, пробелы в строке. Если они есть выводим ошибку! Вот весь код:(попробуйте)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru