Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2009, 11:21   #1
Largo
 
Регистрация: 28.03.2009
Сообщений: 3
Восклицание Оператор выбора

Я лишь недавно познакомился с программированием , поэтому ещё не понимаю что к чему. Но мне надо решить задачу из раздела "оператор выбора" с помощью программы Delphi. Прошу подскажите что делать. Условия "найти произведение цифр K-значного числа"
Largo вне форума Ответить с цитированием
Старый 28.03.2009, 12:06   #2
EvKont
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 26
По умолчанию

Ничего не понятно само задание выложи
EvKont вне форума Ответить с цитированием
Старый 28.03.2009, 12:46   #3
antoha.by
Пользователь
 
Регистрация: 29.04.2008
Сообщений: 32
По умолчанию

Все просто:
Код:
var
 pr,i:integer;
 s:string;
begin
// s- это твое число pr - произведение цифр
pr:=1; // произведение изначально равно 1
// перебор всех цифр, преобразование из строкового формата в числовой
 и их умножение
for i:=1 to length(s) do
 pr:= pr * StrToInt(s[i]);
end;

Последний раз редактировалось antoha.by; 28.03.2009 в 14:22.
antoha.by вне форума Ответить с цитированием
Старый 28.03.2009, 13:12   #4
EvKont
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 26
По умолчанию

Я конечно дико извиняюся но я не вижу тута оператора выбора
EvKont вне форума Ответить с цитированием
Старый 28.03.2009, 13:14   #5
EvKont
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 26
По умолчанию

Ну чтоб был добавим условие
var
pr,i:integer;
s:string;
begin
// s- это твое число pr - произведение цифр
sum:=1; // произведение изначально равно 1
// перебор всех цифр, преобразование из строкового формата в числовой
и их умножение
for i:=1 to length(s) do
if (StrToInt(s[i])>=0) and (StrToInt(s[i])<=9) then
pr:= pr * StrToInt(s[i]);
end;
EvKont вне форума Ответить с цитированием
Старый 28.03.2009, 13:23   #6
antoha.by
Пользователь
 
Регистрация: 29.04.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от EvKont Посмотреть сообщение
Ну чтоб был добавим условие
var
pr,i:integer;
s:string;
begin
// s- это твое число pr - произведение цифр
sum:=1; // произведение изначально равно 1
// перебор всех цифр, преобразование из строкового формата в числовой
и их умножение
for i:=1 to length(s) do
if (StrToInt(s[i])>=0) and (StrToInt(s[i])<=9) then
pr:= pr * StrToInt(s[i]);
end;
Ты что лол? Нахрена тебе это ненужное условие. Только портишь программу.
Самое главное не как программа выполнена, а как она работает!
Ты своим условием нагружаешь работу программы она выполняет 5 лишних действий!!!
А под оператором выбора ты подрозумеваешь оператор if?
antoha.by вне форума Ответить с цитированием
Старый 28.03.2009, 13:40   #7
EvKont
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 26
По умолчанию

А что ты понимаешь под оператором выбора? Вытаскивание по очереди каждого символа из строки? К тому же условие программу не портит а проверяет явдяется ли символ числом чтоб избежать ошибок. Кстати раз уж на то пошло у тебя в коде
sum:=1; // произведение изначально равно 1
pr:= pr * StrToInt(s[i]);
так что твой правильный вариант тоже будет чуть чуть гнать
EvKont вне форума Ответить с цитированием
Старый 28.03.2009, 14:11   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Автор глючит, задача очевидно на циклы, а не оператор выбора.
puporev вне форума Ответить с цитированием
Старый 28.03.2009, 14:20   #9
antoha.by
Пользователь
 
Регистрация: 29.04.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от EvKont Посмотреть сообщение
А что ты понимаешь под оператором выбора? Вытаскивание по очереди каждого символа из строки? К тому же условие программу не портит а проверяет явдяется ли символ числом чтоб избежать ошибок. Кстати раз уж на то пошло у тебя в коде
sum:=1; // произведение изначально равно 1
pr:= pr * StrToInt(s[i]);
так что твой правильный вариант тоже будет чуть чуть гнать
Изначально я делал для суммы цифр но потом заметил что надо произведение и не все переправил.
А по поводу проверки является ли символ числом, если этот символ проходит через функцию StrToInt то уже на этом этапе будет ошибка. зн надо эту проверку совсем другой делать. Да и в условии сказано что выводиться произведение цифр к-значного числа так что оператор if лишний.
antoha.by вне форума Ответить с цитированием
Старый 28.03.2009, 14:57   #10
EvKont
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 26
По умолчанию

Ладно предлагаю не ругаться и сойтись на том что изначально было неправильное условие задачи
EvKont вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диалог выбора папки delphin100 Общие вопросы Delphi 2 01.06.2008 22:43
Оператор выбора... Bill Gates Общие вопросы Delphi 3 22.01.2008 11:32
Поле выбора в дбгриде Elm0 БД в Delphi 6 14.01.2008 15:15
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10
Диалог выбора иконок ЧИЖ Общие вопросы Delphi 9 28.02.2007 13:14