Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Python
Перезагрузить страницу Рекурсивные определения и циклы
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Ghost92 Ghost92 вне форума
Member
 
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 04.10.2010
Exclamation Рекурсивные определения и циклы - 12.02.2011, 21:11

Здравствуйте!!! Мы только начали проходить язык Python, ничего не понятно почему-то...((( не могли бы Вы помочь с написание программ?
вот задание
Определить функцию, принимающую на вход целое число n и возвращающую список, содержащий n элементов, упорядоченных по возрастанию: 1) список натуральных чисел
2) список нечетных натуральных чисел
3) список четных натуральных чисел
4) список квадратов нат. чисел
5) список факториалов
6) список степеней двойки
7) список треугольных чисел
8) список пирамидальных чисел
9) функция вычленения n-ного элемента из заданного списка
10) функция countTrue :: [Bool] -> Integer, возвращающая кол-во элементов списка равных True
11) функция substitude :: Char -> Char -> String -> String. которая заменяет в строке указанный символ на заданный.

Вот эти функции на Хаскеле:
1) nat :: Integer -> [Integer]
nat 0 = []
nat 1 = [1]
nat n = nat(n-1)++[n]
2) nechet :: Integer -> [Integer]
nechet 0 = []
nechet 1 = [1]
nechet n = (nechet(n-1))++[(2*n - 1)]
3) chet :: Integer -> [Integer]
chet 0 = []
chet n = (chet(n-1))++[2*n]
4) kvadro :: Integer -> [Integer]
kvadro 0 = []
kvadro n = (kvadro(n-1))++[(n*n)]
5) factor n = if n == 0 then 1 else n * factorial (n - 1)
fact 0 = []
fact 1 = [1]
fact n = fact(n-1) ++ [factor(n)]
6) kvadrat :: Integer -> [Integer]
kvadrat 0 = [1]
kvadrat n = kvadrat(n-1)++[2^n]
7 - 8) treygolnik1 :: Integer -> Integer
treygolnik1 0 = 0
treygolnik1 1 = 1
treygolnik1 n = n + treygolnik1(n-1)

treygolnik :: Integer -> [Integer]
treygolnik 0 = []
treygolnik 1 = [1]
treygolnik n = treygolnik(n-1)++[treygolnik1(n)]

piramida1 :: Integer -> Integer
piramida1 0 = 0
piramida1 1 = 1
piramida1 n = treygolnik1(n) + piramida1(n-1)

piramida :: Integer -> [Integer]
piramida 0 = []
piramida 1 = [1]
piramida n = piramida(n-1)++[piramida1(n)]
9) vs :: Integer -> [Integer] -> [Integer]
vs a (x:xs) = if (a==1) then xs else x: vs (a-1) xs
10) countTrue :: [Bool] -> Integer
countTrue [] = 0
countTrue (x:xs) = if (x==True) then (1 + countTrue(xs)) else countTrue(xs)
11) substitute :: Char -> Char -> String -> String
substitute a x s =
if (length(s)==0) then "" else
if (head(s)==a)
then x: substitute a x (tail(s))
else head(s): substitute a x (tail(s))

Помогите пожалуйста, и если не сложно...распишите всё по строчкам, чтобы нам тупым всё понять...((( зарнее спасибо!!!
Ответить с цитированием
  (#2 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 13.02.2011, 19:11

def nat(n):
return list(range(1,n+1))

def nechet(n):
return [ x*2+1 for x in range(n)]

def PowOfTwo(n):
return [ 2**x for x in range(n)]

def countTrue(L):
return len(filter(None,L))

Все задания элементарны. Берёшь туториал к интерпритатору, изучаешь пару часов, делаешь всё сам.
Ответить с цитированием
  (#3 (permalink)) Старый
ташанаша ташанаша вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.11.2011
По умолчанию 12.03.2012, 22:40

Функция вычленения n-го элемента из заданного списка.
Функция countTrue :: [Bool] -> Integer, возвращаю-
щая количество элементов списка, равных True
с пом и цикла и рекурсии
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивные алгоритмы. masha13 Алгоритмы 1 02.03.2012 10:04
Простейшие циклы в VBA в Excel Катёна24 Visual Basic 0 16.11.2011 15:04
c++ ЦиКлЫ.... марина lite Вопросы начинающих программистов 1 28.10.2011 11:45
Циклы miron8888 Delphi 1 07.10.2011 23:14
паскаль циклы deff Вопросы начинающих программистов 1 13.05.2011 11:52
Циклы в Dolphin Smalltalk ~Nikita~ Smalltalk 4 18.03.2010 08:02
Простейшие рекурсивные функции myname Lisp 4 29.11.2009 19:15
Вложенные циклы the Rock Pascal 5 22.08.2007 00:00
Вложенные циклы Homer Simpson Pascal 2 21.07.2007 14:05
А-циклы в графах Венечка Prolog 2 31.05.2007 17:19
Помогите с задачей на циклы Kurdt Pascal 8 08.08.2006 06:10
Циклы в Squeak как их делать Daredevil Smalltalk 35 23.01.2004 15:11



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов