Тема: Процедурне програмування

Вивести на екран усі високосні роки з заданого проміжку.

2

Re: Процедурне програмування

з чого почнемо?

3

Re: Процедурне програмування

Тут треба декілька функцій

4

Re: Процедурне програмування

def which year (year): 
 year = int (year) 
if year % 400 == 0:
 intercal = 366
 intercal = 365 
elif year % 4 == 0 and year $ 100:
 intercal = 366 else: 
return 365 
return intercal 

print ("Високосний piк чи ні: , which_year (2020))

5

Re: Процедурне програмування

Процедурне, функціональне чи об'єктно-орієнтоване - починати все одно треба з алгоритму. Ви можете написати 100 функцій, але які вони матимуть значення, якщо ви з них не можете код зібрати? Розпишіть, що саме має робити програма, що виконати це завдання. Якщо ще будуть проблеми - розпишіть детальніше незрозумілі місця і т.д. Це зветься декомпозицією.

6

Re: Процедурне програмування

використовуй тег код, якщо хочеш, щоб тебе зрозуміли

#useful function
def isLeap (year):
    return year%100 and not year%4 or not year%400

#semiuseful function
def isNotLeap (year):
    return year%4 or year%400 and not year%100

#useless&harmful function
def getRange():
    start_year = int(input('Enter start year: '))
    end_year   = int(input('Enter end year: '))
    return range(start_year, end_year+1)

#main function
def printLeapYears ():
    for year in getRange():
        if isLeap(year):
            print (year)

7

Re: Процедурне програмування

victoriaascheberun написав:
def which year (year): 
 year = int (year) 
if year % 400 == 0:
 intercal = 366
 intercal = 365 
elif year % 4 == 0 and year $ 100:
 intercal = 366 else: 
return 365 
return intercal 

print ("Високосний piк чи ні: , which_year (2020))

По-перше, відступи. Python визначає за ними, де закінчуються блоки коду (функції, if та ін.). Допишіть пробіли на початку рядків, щоб конструкція if, яка, очевидно, стосується функції which_year, потрапила в тіло цієї функції, а не виконувалась після неї.

def which year (year): 
 year = int (year) 
 if year % 400 == 0:
  intercal = 366
  intercal = 365 
 elif year % 4 == 0 and year $ 100:

(і так само до кінця функції)

По-друге, треба def which_year замість def which year — ім'я функції не може містити пробілів, мають бути лише літери, цифри та підкреслення.

По-третє, else, в даному випадку, має починатися з нового рядка.