Archiwa kategorii: programowanie

Kurs przygotowawczy- Spis lekcji

ODP 9 M3

Moduł 3 – część praktyczna ciąg dalszy

2. uczen1 = {

‚imie’:’Jan’,

‚nazwisko’:’Kowalski’

}

 

uczen2 = {

‚imie’:’Adam’,

‚nazwisko’:’Nowak’

}

 

nauczyciel1 = {

‚imie’:’Tadeusz’,

‚nazwisko’:’Malinowski’,

}

 

nauczyciel2 = {

‚imie’:’Janina’,

‚nazwisko’:’Nowacka’,

}

 

przedmiot1 = {

‚nazwa’:’Angielski – podstawowy’,

‚uczniowie’:[uczen1,uczen2],

‚nauczyciel’:nauczyciel1

}

 

przedmiot2 = {

‚nazwa’:’Niemiecki – zaawansowany’,

‚uczniowie’:[uczen2],

‚nauczyciel’:nauczyciel2

}

 

ocena1 = {

‚przedmiot’:przedmiot1,

‚uczen’:uczen1,

‚ocena’:4,

}

 

ocena2 = {

‚przedmiot’:przedmiot1,

‚uczen’:uczen2,

‚ocena’:5,

}

 

 

b)

def dodajNauczyciela(nauczyciel,baza):

if nauczyciel in baza:

print(„Nauczyciel juz istnieje”)

else:

baza.append(nauczyciel)

def znajdzNauczyciela(nauczyciel,baza):

if nauczyciel in baza:

return nauczyciel

else:

print(‚Nie ma takiego nauczyciela’)

 

def usunNauczyciela(nauczyciel,baza):

if nauczyciel in baza:

baza.remove(nauczyciel)

else:

print(‚Nie usunięto, nie ma takiego nauczyciela’)

def zmienNauczyciela(nauczycielStary,nauczycielNowy,baza):

if nauczycielStary not in baza:

print(‚Nie ma takiego nauczyciela’)

else:

index=baza.index(nauczycielStary)

baza[index][‚imie’]=nauczycielNowy[‚imie’]

baza[index][‚nazwisko’]=nauczycielNowy[‚nazwisko’]

 

c)

def wystawOcene(uczen, przedmiot, ocena, bazaUczniow, bazaPrzedmiotow, bazaOcen):

if uczen not in bazaUczniow:

print(‚nie ma takiego ucznia’)

elif przedmiot not in bazaPrzedmiotow:

print(‚Nie ma takiego przedmiotu’)

else:

if ocena in bazaOcen:

print(‚Jest już taka ocena’)

else:

bazaOcen.add(ocena)

 

d)

def znajdzNajlepszego(przedmiot,bazaPrzedmiotow, bazaOcen):

maxOcena=0

maxUczen=”

if przedmiot not in bazaPrzedmiotow:

print(‚Nie ma takiego przedmiotu’)

else:

for ocena in bazaOcen:

if ocena[‚przedmiot’]==przedmiot:

if ocena[‚ocena’]>maxOcena:

maxUczen=ocena[‚uczen’]

maxOcena=ocena[‚ocena’]

return maxUczen

 

def znajdzNajgorszego(przedmiot,bazaPrzedmiotow, bazaOcen):

minOcena=999

minUczen=”

if przedmiot not in bazaPrzedmiotow:

print(‚Nie ma takiego przedmiotu’)

else:

for ocena in bazaOcen:

if ocena[‚przedmiot’]==przedmiot:

if ocena[‚ocena’]<minOcena:

minUczen=ocena[‚uczen’]

minOcena=ocena[‚ocena’]

return minUczen

 

e)

def najlepszaSrednia(bazaUczniow,bazaOcen, bazaPrzedmiotow):
maxSrednia=0
maxUczen=”
for uczen in bazaUczniow:
srednia=0
suma=0
ocen=0
for ocena in bazaOcen:
if ocena[‚uczen’]==uczen:
suma+=ocena[‚ocena’]
ocen+=1
if ocen>0:
srednia=suma/ocen
if srednia>maxSrednia:
maxSrednia=srednia
maxUczen=uczen

print(str(maxSrednia) + ‚ ‚ + str(maxUczen))

SPEŁNIJ I KONTYNUUJ 

ODP 8 M3

Moduł 3 – część praktyczna

1. a)

towar1={

‚nazwa’: „Podstawy programowania – część 1”

}

 

towar2={

‚nazwa’: „Danie Dnia!!!”

}

 

klient1={

‚imie’:’John’,

‚nazwisko’:’Smith’,

}

 

klient2={

‚imie’:’Adam’,

‚nazwisko’:’Jensen’,

}

 

transakcja1={

‚data’:’30.02.2018′,

‚kupujacy’:klient1,

‚towary’: towar1

}

 

transakcja2={

‚data’:’30.03.2018′,

‚kupujacy’:klient2,

‚towary’: towar2

}

 

b) def dodajKlienta(klient,baza):

if klient in baza:

print(„Klient juz istnieje”)

else:

baza.append(klient)

def znajdzKlient(klient,baza):

if klient in baza:

return klient

else:

print(‚Nie ma takiego klienta’)

def usunKlienta(klient,baza):

if klient in baza:

baza.remove(klient)

else:

print(‚Nie usunięto, nie ma takiego klienta’)

def zmienKlienta(klientStary,klientNowy,baza):

if klientStary not in baza:

print(‚Nie ma takiego klienta’)

else:

index=baza.index(klientStary)

baza[index][‚imie’]= klientNowy [‚imie’]

baza[index][‚nazwisko’]= klientNowy [‚nazwisko’]

c)

towar1={

‚nazwa’: „Podstawy programowania – część 1”,

‚stanMagazynowy’:99

}

 

towar2={

‚nazwa’: „Danie Dnia!!!”,

‚stanMagazynowy’:1

}

 

towary=[towar1,towar2]

 

def uzupelnijStan(towar, uzupelnienie, baza):

if towar not in baza:

print(‚Nie ma takiego towaru’)

else:

index=baza.index(towar)

baza[index][‚stanMagazynowy’]+=uzupelnienie

 

uzupelnijStan(towar1, 1, towary)

 

d)

def sprzedaz(towar,ilosc, klient, bazaTowarow, bazaTransakcji):

if towar in bazaTowarow:

if towar[‚stanMagazynowy’]<ilosc:

print(‚Transakcja niemożliwa, za mało towaru na stanie’)

else:

index=baza.index(towar)

bazaTowarow[index][‚stanMagazynowy’]-=ilosc

nowaTransakcja={

‚data’:’30.02.2018′,

‚kupujacy’:klient,

‚towar’: towar,

‚ilosc’: ilosc,

}

bazaTransakcji.append(nowaTransakcja)

else:

print(‚Nie ma takiego towaru’)

 

e)

def zwrot(transakcja,bazaTransakcji,bazaTowarow):

if transakcja not in bazaTransakcji:

print(‚Nie ma takiej transakcji’)

else:

index=bazaTowarow.index(transakcja[‚towar’])

bazaTowarow[index][‚stanMagazynowy’]+=transakcja[‚ilosc’]

bazaTransakcji.remove(transakcja)

SPEŁNIJ I KONTYNUUJ 

ODP 6 M3

Moduł 3 – zadania

Słowniki (ekran 1)

1. osoba = {

‚imie’:’John’,

‚nazwisko’:’Smith’,

‚Pesel’:’00000012′

}

 

Pesel musi być zmienną tekstowa – zapisu normalnych zmiennych liczbowych nie da się rozpocząć od zera.

 

Słowniki (ekran 2)

1. plec = [‚Kobieta’, ‚Mężczyzna’]

 

osoba =

‚imie’:’John’,

‚nazwisko’:’Smith’,

‚Pesel’:’00000012′,

‚plec’: plec[1],

}

Słowniki (ekran 3)

1. film1 = {

‚tytul’:’Star Wars IV’,

‚rokProdukcji’: 1977,

}

 

film2 = {

‚tytul’:’Star Wars V’,

‚rokProdukcji’: 1980,

}

 

2. aktor1 = {

‚imie’:’Mark’,

‚nazwisko’:’Hamil’

}

 

aktor2 = {

‚imie’:’Harrison’,

‚nazwisko’:’Ford’

}

 

film1 = {

‚tytul’:’Star Wars IV’,

‚rokProdukcji’: 1977,

‚aktorzy’: [aktor1,aktor2]

}

 

film2 = {

‚tytul’:’Star Wars V’,

‚rokProdukcji’: 1980,

‚aktorzy’: [aktor1,aktor2]

}

 

 

3. towar1={

‚nazwa’: „Podstawy programowania – część 1”

}

 

towar2={

‚nazwa’: „Danie Dnia!!!”

}

 

klient1={

‚imie’:’John’,

‚nazwisko’:’Smith’,

}

 

transakcja1={

‚data’:’30.02.2018′,

‚kupujacy’:klient1,

‚towary’: [towar1,towar2]

}

SPEŁNIJ I KONTYNUUJ 

ODP 6 M2 część praktyczna cz2

Moduł 2 – część praktyczna ciąg dalszy

8. kolkoKrzyzyk = [[0,0,0],

[0,0,0],

[0,0,0]]

def dodajKolko(x,y):

kolkoKrzyzyk[x][y]=1

def dodajKrzyzyk(x,y):

kolkoKrzyzyk[x][y]=2

 

 

9. def dodajKolko(x,y):

if kolkoKrzyzyk[x][y]!=0:

print(‚Pole jest zajęte’)

else:

kolkoKrzyzyk[x][y]=1

def dodajKrzyzyk(x,y):

if kolkoKrzyzyk[x][y]!=0:

print(‚Pole jest zajęte’)

else:

kolkoKrzyzyk[x][y]=2

 

 

10.

kolejnosc=1

def dodajKolko(x,y):

global kolejnosc

if kolejnosc==2:

print(„To nie jest kolej kolka!”)

else:

if kolkoKrzyzyk[x][y]!=0:

print(‚Pole jest zajęte, powtorz ruch’)

else:

kolkoKrzyzyk[x][y]=1

kolejnosc=2

def dodajKrzyzyk(x,y):

global kolejnosc

if kolejnosc==1:

print(„To nie jest kolej krzyzyka!”)

else:

if kolkoKrzyzyk[x][y]!=0:

print(‚Pole jest zajęte, powtorz ruch’)

else:

kolkoKrzyzyk[x][y]=2

kolejnosc=1

 

 

11. kolejnosc=1

ruch=1

def dodajKolko(x,y):

global kolejnosc, ruch

if kolejnosc==2:

print(„To nie jest kolej kolka!”)

elif ruch>9:

print(„Osiągnięto maksymalną ilość ruchów”)

else:

if kolkoKrzyzyk[x][y]!=0:

print(‚Pole jest zajęte, powtórz ruch’)

else:

kolkoKrzyzyk[x][y]=1

kolejnosc=2

ruch+=1

def dodajKrzyzyk(x,y):

global kolejnosc, ruch

if kolejnosc==1:

print(„To nie jest kolej krzyzyka!”)

elif ruch>9:

print(„Osiągnięto maksymalną ilość ruchów”)

else:

if kolkoKrzyzyk[x][y]!=0:

print(‚Pole jest zajęte, powtórz ruch’)

else:

kolkoKrzyzyk[x][y]=2

kolejnosc=1

ruch+=1

SPEŁNIJ I KONTYNUUJ

ODP 5 M2 Część praktyczna cz1

Moduł 2 – część praktyczna

1. Wszystkie liczby całkowite dzielą się przez 1 bez reszty. Jeśli wynik dzielenia modulo jest inny, jest to ułamek.

 

def czyUlamek(a):

if a%1!=0:

return True

else:

return False

 

print(czyUlamek(1.5))

 

2. def sumaListy(a):

suma=0

for x in a:

suma+=x

return suma

 

 

3. def minimumListy(a):

minimum=a[0]

for x in a:

if x<minimum:

minimum=x

return minimum

 

 

4. def ilorazSumList(a,b):

suma1=0

suma2=0

for x in a:

suma1+=x

for y in b:

suma2+=y

if suma2==0:

print(„Błąd”)

return 0

else:

return suma1/suma2

 

5. def rokPrzestepny(a):

if (a%4==0 and a%100!=0) or a%400==0:

return True

else:

return False

 

6. def potegowanie(liczba, potega):

if potega==0:

return 1

wynik=liczba

for x in range(potega-1):

wynik=wynik*liczba

return wynik

 

7. def silnia(a):

wynik=1

x=1

if a==0 or a==1:

return 1

else:

while x <=a:

wynik=wynik*x

x+=1

return wynik

SPEŁNIJ I KONTYNUUJ 

ODP 4 M2

Moduł 2 – zadania

Funkcje (ekran 3)

1. def poleProstakata(a,b):

if a<=0 or b <= 0:

print(‚Nieprawidłowe dane’)

return 0

else:

return a * b

 

 

2. def poleProstakata(a,b):

if a<=0 or b <= 0:

print(‚Nieprawidłowe dane’)

else:

return a * b

 

x=poleProstokata(0,2)

y = x / 2

 

Jeśli nie przypiszemy żadnej wartości, otrzymamy operację matematyczną postaci „Nieznana wartość / 2”, co wywoła błąd w naszym programie.

SPEŁNIJ I KONTYNUUJ 

ODP 3

Moduł 1 – część praktyczna

1. x = ‚imie’

y = ‚ nazwisko’

print(‚Witam, nazywam się ‚ + x + y)

 

2. dzien=5

miesiac=5

rok=2019

print(‚Dzisiaj jest ‚ + str(dzien) + ‚.’ + str(miesiac) + ‚.’ + str(rok))

 

3. x = 111

y = 33

z = 333

if x>y:

if x>z:

print(x)

else:

print(z)

else:

if y>z:

print(y)

else:

print(z)

 

4. x=9

y=837

z=143234

 

if x%9==0:

print(str(x) + ‚ jest podzielne przez 9’)

if y%9==0:

print(str(y) + ‚ jest podzielne przez 9’)

if z%9==0:

print(str(z) + ‚ jest podzielne przez 9’)

 

 

5. lista=[‚a’,’b’,’c’,’d’,’e’]

szukana= ‚e’

for x in lista:

if x==szukana:

print(‚Szukana wartość jest na liście’)

 

 

6. lista=[1,2,3,2,5,6,3,5,7,9,0,2,-3]

x=0

suma=0

while x < len(lista):

suma+=lista[x]

x+=1

srednia = suma/len(lista)

print(srednia)

 

 

7. lista=[‚styczeń’,’luty’,’marzec’,’kwiecień’,’maj’,’czerwiec’,’lipiec’,’sierpień’,’wrzesień’,’październik’,’listopad’,’grudzień’]

for x in lista:

print(x + ‚ ma ‚ + str(len(x)) + ‚ liter’)

 

8. silnia=1

x=1

while x<=10:

silnia=silnia*x

x+=1

print(silnia)

 

 

9. x=1

while x<=100:

if x%15==0:

print(‚fizzbuzz’)

elif x%5==0:

print(‚buzz’)

elif x%3==0:

print(‚fizz’)

else:

print(x)

x+=1

 

 

10. x=100

while x>=1:

if x%15==0:

print(‚fizzbuzz’)

elif x%5==0:

print(‚buzz’)

elif x%3==0:

print(‚fizz’)

else:

print(x)

x-=1

SPEŁNIJ I KONTYNUUJ 

OPD 2

Moduł 1 – zadania

Zadania z modułu 1:

Zmienne (ekran 3):

1. Wystąpi błąd – nie można użyć zmiennej zanim zostanie przypisana do niej wartość.

2. X jest liczba, Y – napisem. Dla x zostanie wypisane 4, dla Y – ‘2+2’.

3. Print(‚imie nazwisko’)

Zmienne (Ekran 4)

1. X = 1

Operacje na zmiennych (Ekran 5)

1. 137781 % 9. Jeśli wynik wynosi zero, jest podzielne.

2. Print(15%3). Jeśli wypisane zostanie zero, jest podzielne.

3. Błąd dzielenia przez zero.

4. Print(3/2)

Operacje na napisach (Ekran 6)

1. print(‚napis lewy ‚ + ‚napis prawy’)

2. Należy przypisać wynik len do zmiennej i spróbować wykonać dowolną operację matematyczną.

x = len(‚napis’)

y = x / 2

Jeśli nie ma błędu, jest to liczba.

3. Wystąpi błąd, opisany na kolejnej stronie.

Operacje na napisach (Ekran 7)

1. x = ‚napis’

y = ‚dlugi napis’

z = ‚jeszcze dluzszy napis’

print(len(x))

print(len(y))

print(len(z))

2. x = 2

y = 4

z = 6

print(str(x) + ‚,’ + str(y) + ‚,’ + str(z))

 

Instrukcje warunkowe (Ekran 12)

1. Dla x = 9 zostanie wypisane „x jest większe od 9”. Należy zmienić znak < na <=, oraz stosowny print by mieć napis „mniejsze lub     równe 9”. Alternatywnie można zmienić < na >=.

2. x = ‚napis’

y = len(x)

if y < 5:

print(‚Tekst ma mniej niż 5 znaków’)

else:

print(‚Tekst ma conajmniej 5 znaków’)

 

Wersja skrócona:

x = ‚napis’

if len(x) < 5:

print(‚Tekst ma mniej niż 5 znaków’)

else:

print(‚Tekst ma conajmniej 5 znaków’)

  Instrukcje warunkowe (Ekran 13)

1. Część IF zostanie pominięta i program przejdzie do ELSE (o ile istnieje).

Instrukcje warunkowe (Ekran 17)

1. Otrzymamy napis „X jest większe od 3”.

Żeby otrzymać dokładniejsze wyniki, należy zmienić kolejność warunków, umieszczając x==5 na początku. Następnie x > 4 i x > 3  – przy czym można się zastanowić czy oba te warunki są potrzebne, gdyż oznaczają prawie to samo, oprócz wariantu gdzie x          wynosi 4.

Listy (Ekran 18)

1. Wystąpi błąd, nie da się odwołać do indeksu wykraczającego poza liczbę pozycji w liście.

Operacje na listach (Ekran 21)

1. lista = []

lista.append(‚Poniedziałek’)

lista.append(‚Wtorek’)

lista.append(‚Środa’)

lista.append(‚Czwartek’)

lista.append(‚Piątek’)

lista.append(‚Sobota’)

lista.append(‚Niedziela’)

 

2. lista.remove(‚Poniedziałek’)

lista.remove(‚Wtorek’)

lista.remove(‚Środa’)

lista.remove(‚Czwartek’)

 

Pętle (ekran 23)

1. x=1000

while x>=1:

print(x)

x=x-1

SPEŁNIJ I KONTYNUUJ 

ODP 1

W tej części kursu zamieszczone są przykładowe rozwiązania zadań umieszczonych w poszczególnych modułach. Dotyczy to zarówno pojedynczych zadań zawartych w części teoretycznych, jak i tych z „Części praktycznej”.

Nie są to oczywiscie jedyne słuszne odpowiedzi, a tylko sugestie, mające głownie na celu pokazanie sposobu rozumowania. Szczegóły, nawet tak proste jak nazwy zmiennych, mogą być zupełnie inne dla każdego kursanta. Zalecane jest rozwiązywanie zadań we własnym zakresie i używanie obecnej części kursu jedynie w celach porównawczych – ewentualnie pomocy w sytuacji „zacięcia się”.

UWAGA: Tak jak wspominaliśmy w Module 1, bezpośrednie kopiowanie kodu może nie zachować wcięć, co sprawi iż programy nie zadziałają poprawnie. Należy samodzielnie sprawdzić stosowne odstępy, zgodnie z zasadami przedstawionymi w ramach kursu. Podobnie możliwe jest, iż niektóre edytory tekstu zamienią apostrofy na swoje własne ozdobne odpowiedniki, nieakceptowalne przez Python.