Функции: продолжение

Как описывать и использовать функции.

  • {o} — тема по Linux

  • <!> ­— необязательная тема

Домашнее задание

  • {i} — теоретическое задание

  • {*} — новая тема

  1. На плоскости заданы своими координатами п точек. Составить программу, определяющую, между какими из пар точек самое большое расстояние.
    •    1 #!/usr/bin/env python
         2 # -*- coding: utf-8 -*-
         3 """
         4 На плоскости заданы своими координатами п точек. Составить программу, определяющую, между какими из пар точек самое большое расстояние.
         5 """
         6 
         7 from math import *
         8 
         9 def path(m,n):
        10   "Расстояние от точки m до точки n"
        11   return sqrt((m[0]-n[0])**2+(m[1]-n[1])**2)
        12 
        13 n=input()
        14 # точки вводсятся в формате x, y построчно
        15 coord=[input() for i in xrange(n)]
        16 
        17 m=M=l=0
        18 
        19 for i in xrange(n-1):
        20   for j in xrange(i+1,n):
        21     p=path(coord[i],coord[j])
        22     if p>l:
        23       m,M,l=i,j,p
        24 
        25 print m,M,p,coord[m],coord[M]
      
      maxlen.py
  2. Составить программу, определяющую, в каком из данных двух чисел больше разных цифр.
    •    1 #!/usr/bin/env python
         2 # -*- coding: utf-8 -*-
         3 """
         4 Составить программу, определяющую, в каком из данных двух чисел больше разных цифр.
         5 """
         6 
         7 def dig(n):
         8   "Сколько цифр в числе n"
         9   d={}
        10   while n>0:
        11     d[n%10]=1
        12     n/=10
        13   return len(d)
        14 
        15 a,b=input("Введите два числа: ")
        16 c=dig(a)>dig(b) and a or b
        17 print "В %d больше цифр"%c
      
      maxdig.py
  3. Вывести все простые числа от 1 до заданного N
    •    1 #!/usr/bin/env python
         2 # -*- coding: utf-8 -*-
         3 """
         4 Вывести все простые числа от 1 до заданного N
         5 (кажется, 1 -- не простое число)
         6 """
         7 
         8 from math import *
         9 
        10 n=input("введите N: ")
        11 
        12 for i in xrange(2,n):
        13   for j in xrange(2,int(sqrt(i))):
        14     if i%j == 0:
        15       break
        16   else:
        17     print i,
      
      simple.py
    • Решето Эратосфена:

         1 #!/usr/bin/env python
         2 # -*- coding: utf-8 -*-
         3 """
         4 Вывести все простые числа от 1 до заданного N
         5 (кажется, 1 -- не простое число)
         6 
         7 Алгоритм "Решето Эратосфена"
         8 """
         9 
        10 from math import *
        11 
        12 n=input("введите N: ")
        13 
        14 Er=[True]*n
        15 
        16 for i in xrange(2,len(Er)):
        17   if Er[i]:
        18     print i,
        19     j=i*2
        20     while j<n:
        21       Er[j]=False
        22       j+=i
      
      simple_erato.py
  4. Ввести ширину и высоту текстового экрана в знакоместах, начальное и конечное значение параметра X функции и саму функцию в виде формулы от X. Пользуясь функцией eval(), вВывести вертикально ориентированный "график" этой функции в виде (см. Рисование графика):

    1.   *
        *
         *
           *
              *
                  *
                       *
                            *
    2.   *
        *
         *
          **
            ***
               ****
                   *****
                        ******


CategoryClass CategoryVmsh

LecturesVMSH/2009-12-09 (последним исправлял пользователь FrBrGeorge 2009-12-23 15:10:51)