The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"кто знает напишите скрипт  "
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"кто знает напишите скрипт  "
Сообщение от supus emailИскать по авторуВ закладки on 31-Мрт-03, 03:58  (MSK)
сам я shell'a незнаю, дали мне задачку :(
-- вот задача --
Найти на отрезке [n,m], натуральное число, имеющее наибльшее число делителей. Предусмотреть как интерактивный ввод, так и ввод с командной строки .
Напишите кто нить плизз.
или тут , или на почту    

supus@mail333.com

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "кто знает напишите скрипт  "
Сообщение от supus emailИскать по авторуВ закладки on 01-Апр-03, 02:28  (MSK)
>сам я shell'a незнаю, дали мне задачку :(
>-- вот задача --
>Найти на отрезке [n,m], натуральное число, имеющее наибльшее число делителей. Предусмотреть как
>интерактивный ввод, так и ввод с командной строки .
> Напишите кто нить плизз.
>или тут , или на почту
>
>
>
>supus@mail333.com
вот данные которые нужны
  например нам дан отрезок от 1 до 5 нужно на нем найти большее число делителй берем 2 снала у него 2 делителя (1,2) , потом 3 у него тоже 2 (1,3) ,4 у него 3 делителя (1,2,4) и 5 (1,5)
все делвть в цикле. 4 имеет наибольшее число делителей.
кто может напишете скрипт очень нужно    

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "из под Windows писано для bash..."
Сообщение от SergeiZz Искать по авторуВ закладки on 02-Апр-03, 17:30  (MSK)
>>сам я shell'a незнаю, дали мне задачку :(
Это что ж за садист задачу дал человеку, который shell не знает?

>вот данные которые нужны
>  например нам дан отрезок от 1 до 5 нужно на
>нем найти большее число делителй берем 2 снала у него 2
>делителя (1,2) , потом 3 у него тоже 2 (1,3) ,4
>у него 3 делителя (1,2,4) и 5 (1,5)
>все делвть в цикле. 4 имеет наибольшее число делителей.
>кто может напишете скрипт очень нужно
Я сейчас под Windows сижу. Попробовал писать -- ляпаю опечатки типа i
вместо $i -- надо хотя бы раз запустить. Вообще, конечно, лень подобными делами заниматься -- сами понимаете...
Делители как искать будем? Простым перебором? Тогда вообще два вложенных
цикла и всё.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "из под Windows писано для bash..."
Сообщение от supus emailИскать по авторуВ закладки on 03-Апр-03, 02:07  (MSK)
>Я сейчас под Windows сижу. Попробовал писать -- ляпаю опечатки типа i
>
>вместо $i -- надо хотя бы раз запустить. Вообще, конечно, лень >подобными
>делами заниматься -- сами понимаете...
>Делители как искать будем? Простым перебором? Тогда вообще два >вложенных
>цикла и всё.
SergeiZz мне главное чтобы он работал тада мне атестаст поставят ))
ну а делать на верно перебором чтобы типа задаем отрезок  и  он ищет в числе больше делителей .

p.s. вся надежда на тебя ))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Атестата не видать"
Сообщение от SergeiZz Искать по авторуВ закладки on 03-Апр-03, 11:28  (MSK)
> SergeiZz мне главное чтобы он работал тада мне атестаст поставят ))
Я, однако, помимо основной работы по совместительству преподаю в
университете, в частности, и программирование. Я с вашим братом просто
поступаю. Например часто встречается такой диалог: "Вы в этом месте забыли
поставить закорючку. Что здесь должно стоять, точка, или запятая?" -- "Н-ну, точка." -- "Правильно. А почему не запятая?". Атестата, думается,
всё равно не видать,

> ну а делать на верно перебором чтобы типа задаем отрезок  
>и  он ищет в числе больше делителей .
В смысле делители ищем типа перебором. Например число 11 проверяем на делимость на 2, 3, 4, 5, а 6 стоит брать? Не стоит, так как уже видно,
что 11 на 6 нацело не делется. Видно? Да и 5 не стоит. Но мы, будем
перебирать до 5 включительно, чтобы максимально упростить программу.
Есть и такая проблема. Максимум может быть не единственным. Например
на 2..8 и 6 и 8 имеют по два делителя. Здесь мы выводим наименьший
(или наибольший) из них. Не считаем делителями ни 1, ни само число.
Так, что у 8 будет два делителя (2, 4), у 3 -- ноль.

Теперь ещё. Чай какой нибудь язык программирования знаете?
Лучше, чтобы это был C (C++). Или смотрите что-нибудь по синтаксису
bash. По крайней мере, как работает цикл for должны уметь объяснить.
Ну, если и здесь упор (support) нужен, то я тащусь (так вы говорите в
таких случаях?). Впрочем пояснить не долго, а время, думаю, у меня будет
сегодня.
#!/bin/bash
# Формат вызова: ./divab.sh 2 5
A=$1
B=$2
MAX=0
CUR=0
RES=$A
for (( i=$A ; i<=$B ; i++ )) ; do
CUR=0
I2=`expr $i / 2`
for (( j=2 ; j<=$I2 ; j++ )) ; do
if [ `expr $i % $j` == 0 ] ; then
CUR=`expr $CUR + 1`
fi
done
if [ $CUR -gt $MAX ] ; then
MAX=$CUR
RES=$i
fi
done
echo "Number $RES has `expr $MAX` divizors."
# EOF
На всякий пожарный, повторим, как этот текст запустить. Копируем его
мышкой в текстовай файл. Файл сохраняем под именем divab.sh, и с консоли
выполняем команды
bash$ chmod 0755 divab.sh
bash$ ./divab.sh 5 12
Если chmod не делать, тогда запускаем точкой, или /bin/bash:
bash$ . divab.sh 5 12
bash$ /bin/bash divab.sh 5 12

Успехов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Атестата не видать"
Сообщение от pth Искать по авторуВ закладки on 03-Апр-03, 13:59  (MSK)
> В смысле делители ищем типа перебором.

Offtopic.

Прикольный пример разложения на простые множители на perl - никакой арифметики, только регэкспы

http://koapp.narod.ru/tehlit/system/linux/systemadmin/perl/chapter6/6_3.htm

на тему prime-pattern.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Атестата не видать"
Сообщение от SergeiZz Искать по авторуВ закладки on 03-Апр-03, 16:02  (MSK)
>> В смысле делители ищем типа перебором.
>
>Offtopic.
>
>Прикольный пример разложения на простые множители на perl - никакой арифметики, только
>регэкспы
>
>http://koapp.narod.ru/tehlit/system/linux/systemadmin/perl/chapter6/6_3.htm
>
>на тему prime-pattern.
Действительно, весьма занятно. Только нужно выделить последний абзац.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Атестата не видать"
Сообщение от SergeiZz Искать по авторуВ закладки on 03-Апр-03, 16:10  (MSK)
>echo "Number $RES has `expr $MAX` divizors."
># EOF
Опечатка, но результата не портит. Лишнее expr пропечаталось.

echo "Число $RES имеет $MAX делителей."

Работает ли хоть?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "из под Windows писано для bash..."
Сообщение от jay see emailИскать по авторуВ закладки on 04-Апр-03, 00:19  (MSK)
>Делители как искать будем? Простым перебором? Тогда вообще два вложенных
>цикла и всё.

# factor 178
178: 2 89

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "из под Windows писано для bash..."
Сообщение от SergeiZz Искать по авторуВ закладки on 04-Апр-03, 09:01  (MSK)
>>Делители как искать будем? Простым перебором? Тогда вообще два вложенных
>>цикла и всё.
>
># factor 178
>178: 2 89
Нет. Это разложение на простые множители. Если я правильно понял задачу,
то требовалось найти делители, в том числе и непростые. Например 8: 2 4.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "почти пошел :("
Сообщение от supus emailИскать по авторуВ закладки on 05-Апр-03, 15:47  (MSK)
Вобщем скрипт не пошел :( , потомучто shell C++ непонимает вот жаль
я попробовал его изменить под shell, но неполучилось (незнаю его просто :)

Serg если можеш изменить чего нибудь буду рад :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Подробнее."
Сообщение от SergeiZz Искать по авторуВ закладки on 07-Апр-03, 09:16  (MSK)
>Вобщем скрипт не пошел :( , потомучто shell C++ непонимает вот жаль
>
>я попробовал его изменить под shell, но неполучилось (незнаю его просто :)
>
>
>Serg если можеш изменить чего нибудь буду рад :)
Ниччё не понял! "потомучто shell C++ непонимает" -- подробнее расскажите,
кто не понимает, что непонимает. На чём писать-то надо на shell, или C++?
Менять там я не знаю что. У меня работает под Red Hat Linux 7.2 (несколько
дороботанном напильником). А у Вас какая система?

Там ниже ещё примерчик есть на shell. С аккуратным вводом/выводом. Стоит
испытать.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Подробнее."
Сообщение от Supus emailИскать по авторуВ закладки on 08-Апр-03, 08:02  (MSK)
>Ниччё не понял! "потомучто shell C++ непонимает" -- подробнее расскажите,
>кто не понимает, что непонимает. На чём писать-то надо на shell, или
>C++?
>Менять там я не знаю что. У меня работает под Red Hat
>Linux 7.2 (несколько
>дороботанном напильником). А у Вас какая система?
>Там ниже ещё примерчик есть на shell. С аккуратным вводом/выводом. Стоит
>испытать.

mm  мне этот скрипт нужно писать в редакторе vi.
  он  ругается на ")" ,на ", ; : " да
и еще   #!/bin/bash  он пишет что директории нету  на до #!/bin/sh и он еще на многое чего ругается Ж(


  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Подробнее."
Сообщение от SergeiZz Искать по авторуВ закладки on 08-Апр-03, 11:11  (MSK)
>mm  мне этот скрипт нужно писать в редакторе vi.
>  он  ругается на ")" ,на ", ; : "
>и еще   #!/bin/bash  он пишет что директории нету  
>на до #!/bin/sh и он еще на многое чего ругается Ж(
Чует моё сердце -- у Вас FreeBSD. Или Вас заставляют на sh, а не на bash.
Если FreeBSD, то нужно иправить путь в первой строке. Найдите файл с именем
bash. Наверно где-то в /usr/local... И измените путь на что-нибудь в роде
#!/usr/local/bin/bash
Хуже, если требуется писать на tcsh, или чём ещё "не bash", Тогда этот
текст Вам не подходит. За tcsh вариант я не возьмусь.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "кто знает напишите скрипт  "
Сообщение от spanka emailИскать по авторуВ закладки on 06-Апр-03, 17:40  (MSK)
#!/bin/bash
get_param() {
echo "Input begin:"
read b
echo "Input end:"
read e
}
b=`echo $1 | awk '{print length($1)}'`
e=`echo $2 | awk '{print length($1)}'`
if [ ${b} -eq "0" -o ${e} -eq "0" ]; then
echo "Error input:"
echo ${e}
get_param
else
b=${1}
e=${2}
fi
max=0
save="none"
while [ ${b} -le ${e} ]; do
t=1
c=0
while [ ${t} -le ${b} ]; do
tmp=`expr ${b} % ${t}`
if [ ${tmp} -eq "0" ]; then
c=`expr ${c} + 1`
fi
t=`expr ${t} + 1`
done
if [ ${c} -gt ${max} ]; then
save=${b}
max=${c}
fi
b=`expr ${b} + 1`
done
echo "Max: ${save}"
  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Хз "
Сообщение от Supus emailИскать по авторуВ закладки on 08-Апр-03, 08:03  (MSK)
>Ниччё не понял! "потомучто shell C++ непонимает" -- подробнее расскажите,
>кто не понимает, что непонимает. На чём писать-то надо на shell, или
>C++?
>Менять там я не знаю что. У меня работает под Red Hat
>Linux 7.2 (несколько
>дороботанном напильником). А у Вас какая система?
>Там ниже ещё примерчик есть на shell. С аккуратным вводом/выводом. Стоит
>испытать.
mm  мне этот скрипт нужно писать в редакторе vi.
  он  ругается на ")" ,на ", ; : " да
и еще   #!/bin/bash  он пишет что директории нету  на до #!/bin/sh и он еще на многое чего ругается Ж


  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "tcsh ?"
Сообщение от Supus Искать по авторуВ закладки on 09-Апр-03, 17:52  (MSK)
SergeiZz , а как этот -tcsh- расшифровывается ?

мне надо писать скрипт в редакторе vi больше там негде писать

Т.е. у меня линукс оболочка сама не грузится, как в досе все.  


  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "tcsh ?"
Сообщение от SergeiZz Искать по авторуВ закладки on 09-Апр-03, 18:41  (MSK)
>мне надо писать скрипт в редакторе vi больше там негде писать  
Выполни команду uname -a
и напиши результат, а то я  не пойму, Linux у тебя, или UNIX. Что это за
машина, твоя, или чужая? Ты сам установить bash сможешь, если он у тебя не
установлен? Ты уверен, что тебе надо писать на shell? Может на C++?

> Т.е. у меня линукс оболочка сама не грузится, как в досе все.
Графического режима нет? Ну и не надо.

>SergeiZz , а как этот -tcsh- расшифровывается ?
Какая сейчас-то тебе разница?

Вообще. Создай файл с именем divab.sh и текстом сценария (любой из двух)
внутри. Когда будешь показывать результат своих трудов, выполни команды
запуска, которые я писал. Если не пойдёт, то скажи, что дома у тебя
работало и находило ответ вроде правильно. Скажи, что оно находило
минимальное число, если ответов было несколько (я писал об этом). Тот,
кто тебя пытает, посмотрит текст и задаст пару вопросов (если я правильно
уловил ситуацию). Отвечай, что знаешь. Авось пронесёт.
А так у нас игра в 20 вопросов получится. Чем ещё помочь -- не знаю.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру