- Yazılı tapşırıqların yerini, çəkisini və qiymətləndirmə şkalasını (0, ⅓, ½, ⅔, 1) bilmək.
- «Giriş / Çıxış» cədvəlindən daxiletmənin formasını, çıxışın şəklini və xüsusi halı (
yoxdur) çıxarmaq. - Beş tapşırıq ailəsi üçün hazır skeletlə tam proqram yazmaq: aralıqda ədədlər və bölənlər, qalıq sinifləri, siyahılar, rəqəmlər, sətirlər.
- Proqramı nümunələrlə yoxlamaq və bal itirən tipik səhvləri tapmaq.
İnformatika hissəsinin sonunda cavab vərəqində boş sahə və bir cümlə gözləyir: «…çap edən proqramı Python dilində yazın. Məsələn:» — yanında isə kiçik «Giriş / Çıxış» cədvəli. Burada cavab variantları yoxdur, yazdığın proqramı yoxlayıcılar (markerlər) qiymətləndirir. Yaxşı xəbər də var: 2025–2026-cı illərin dörd imtahanındakı səkkiz yazılı Python tapşırığının hamısı bir neçə ailəyə aiddir. Hər ailənin skeletini bilsən, tapşırıq «şərti yazmaq» işinə çevrilir.
Yazılı tapşırıq necə görünür və necə qiymətləndirilir
İnformatika hissəsi 61–90-cı tapşırıqlardır: 22 qapalı (61–82), 5 kodlaşdırılan (83–87) və 3 yazılı (88–90). 88-ci tapşırıqda blok-sxem qurulur («Blok-sxemin qurulması: yazılı tapşırıqlar» dərsinə bax), 89 və 90-cı tapşırıqlarda isə Python proqramı yazılır. Yazılı tapşırıqları markerlər meyarlar əsasında yoxlayır və hər birinə 0, ⅓, ½, ⅔ və ya 1 bal verir. DİM ətraflı meyarları dərc etmir, ona görə məqsəd sadədir: daxiletmə, hesablama və çıxış hissələrinin hər biri yerində olan tam, düzgün və oxunaqlı proqram.
- NBaaçıq tapşırıqlar üzrə nisbi bal
- Dkoddüzgün kodlaşdırılmış cavabların sayı (0–5)
- Dyazılıyazılı tapşırıqlara verilən balların cəmi (0–3)
Qapalı hissə buna 100/33 · (Dq − Yq/4) əlavə edir; fənn üzrə maksimum 100-dür. Yazılı tapşırıq iki kodlaşdırılan tapşırıq qədər çəkiyə malikdir.
Leyla kodlaşdırılan 5 tapşırıqdan 4-nü düzgün həll edib, yazılı tapşırıqlar üçün isə 1, ⅔ və ½ bal alıb. Onun açıq tapşırıqlar üzrə nisbi balı neçədir? Bir yazılı tapşırığın tam həlli neçə bal «dəyər»?
Həllini göstərHəllini gizlət
NBa = (4 + 2 · 13/6) · 100/33 = (4 + 13/3) · 100/33 = 25/3 · 100/33 ≈ 25,3.
Bir yazılı tapşırığın tam həlli 2 · 100/33 ≈ 6,1 bal, ⅓ isə ≈ 2,0 bal verir (100 ballıq şkalada). Rİ altqrupunda informatikanın çəki əmsalı 1 olduğundan, bu ballar ümumi bala olduğu kimi düşür.
Nəticə: düzgün başlanmış, amma yarımçıq proqram da bal gətirə bilər — boş sahə isə heç vaxt.
Tapşırığın ən dəyərli hissəsi «Giriş / Çıxış» cədvəlidir. Sol sütun klaviaturadan yığılanı göstərir — hər sətir bir input() çağırışıdır. Sağ sütun proqramın çap etməli olduğunu dəqiq göstərir: ədəd, söz, kvadrat mötərizəli siyahı və ya bir neçə sətir. Cədvəli belə oxu:
- 1Sətirləri say
Bir nümunədə neçə giriş sətri var? Birinci sətir
n-dirsə və ondan sonra düznsətir gəlirsə, əvvəln-i oxu, sonra dövrdənədəd. - 2Tipi seç
Tam ədəd —
int(input()); mətn —input(); bir sətirdə boşluqla bir neçə qiymət —input().split(' '). - 3Çıxışın şəklinə bax
Bir ədəd — dövrdən sonra bir
print;[15, 6, 7]—print(b); hər ədəd ayrı sətirdə —printdövrün içində. - 4Qaydanı yoxla
Bir nümunəni əllə hesabla: niyə məhz bu cavab alınır? «Böyük» və «böyük və ya bərabər», «sayı» və «cəmi» fərqinə diqqət et.
- 5Xüsusi halı tap
Çıxışda ədəd əvəzinə söz varsa (
yoxdur), dövrdən sonraif–elselazımdır.
| «Giriş» sütununda | Proqramda |
|---|---|
| bir ədəd | n = int(input()) |
| iki ədəd, iki sətirdə | a = int(input()), b = int(input()) |
n, sonra hərəsi ayrı sətirdə n ədəd | for i in range(0, n): a.append(int(input())) |
| bir sətirdə boşluqla ayrılmış qiymətlər | a = input().split(' ') — elementlər sətirdir |
| bir sətir mətn | s = input() |
Proqramın skeleti: daxiletmə → emal → çıxış
İmtahan proqramlarının hamısı üç hissədən ibarətdir və onlar həmişə bu ardıcıllıqla yazılır. Daxiletmə: bütün input() sətirləri əvvəldə. Emal: sayğac və ya cəm dövrdən əvvəl sıfırlanır (k = 0, s = 0, b = []), dövr şərti yoxlayır və nəticəni toplayır. Çıxış: sağa çəkilmədən, dövrdən sonra — lazım olsa yoxdur budağı ilə. Aşağıdakı on nümunə beş ailəyə bölünür; hər ailənin birinci həlli həmin ailə üçün skeletdir.
Nümunəvi həllər: beş ailə, on tapşırıq
1-ci ailə — aralıqda ədədlər və bölənlər. Dövr range(a, b + 1) və ya range(1, n + 1) üzrə gedir, şərt ödənəndə sayğac və ya cəm artır. 2025–2026-cı illərdə bu ailədən «parçada tək ədədlərin kvadratları» və «tək bölənlərin cəmi» tipli tapşırıqlar verilib.
Klaviaturadan daxil edilən a və b (a < b) natural ədədləri üçün [a; b] parçasında yerləşən cüt tam kvadratların (4, 16, 36, …) cəmini, belə ədəd yoxdursa «yoxdur» sözünü çap edən proqramı Python dilində yazın.
Giriş → Çıxış (a və b ayrı sətirlərdə)
10, 70 → 116
50, 60 → yoxdur
1, 4 → 4
Həllini göstərHəllini gizlət
range(a, b + 1).Tam kvadrat yoxlaması:
r = int(x ** 0.5) və r * r == x — tam ədədlərlə, dəqiqdir.Cüt:
x % 2 == 0. Cəm s dövrdən əvvəl 0-dır.Natural ədədlərin cəmi yalnız heç bir ədəd tapılmayanda 0 olur, ona görə dövrdən sonra
if s == 0: → yoxdur.Yoxlama: [10; 70]: 16 + 36 + 64 = 116 ✓.
a = int(input())
b = int(input())
s = 0
for x in range(a, b + 1):
r = int(x ** 0.5)
if x % 2 == 0 and r * r == x:
s = s + x
if s == 0:
print('yoxdur')
else:
print(s)Daxil edilən natural n ədədinin cüt bölənlərinin sayını və cəmini bir sətirdə, boşluqla ayıraraq çap edən proqramı yazın.
Giriş → Çıxış
36 → 6 78
15 → 0 0
8 → 3 14
Həllini göstərHəllini gizlət
n-in özü də ola bilər → range(1, n + 1).Şərt iki hissəlidir:
n % d == 0 (bölən) və d % 2 == 0 (cüt), and ilə birləşir.İki nəticə eyni dövrdə toplanır;
print(k, s) onları boşluqla çap edir.Yoxlama: 36-nın cüt bölənləri 2, 4, 6, 12, 18, 36 → 6 ədəd, cəmi 78 ✓.
n = int(input())
k = 0
s = 0
for d in range(1, n + 1):
if n % d == 0 and d % 2 == 0:
k = k + 1
s = s + d
print(k, s)2-ci ailə — qalıq sinifləri. Ədədlər cədvələ «ilan» kimi düzülür və ədədin hansı sütunda olduğu soruşulur. Cədvəlin iki sətri bir dövr təşkil edir: 3 sütunda dövr 6, 4 sütunda 8-dir. 2025-ci ildə bu ailədən üç sütunlu cədvəl verilmişdi.
Natural ədədlər A, B, C, D sütunlarına belə düzülüb: 1-ci sətir 1 2 3 4, 2-ci sətir 8 7 6 5, 3-cü sətir 9 10 11 12, 4-cü sətir 16 15 14 13 və s. Daxil edilən a ədədinin hansı sütunda olduğunu çap edən proqramı yazın.
Giriş → Çıxış
7 → B
12 → D
16 → A
30 → C
Həllini göstərHəllini gizlət
Deməli: A — qalıq 1 və ya 0; B — 2 və ya 7; C — 3 və ya 6; D — 4 və ya 5.
8, 16, 24, … ədədlərinin qalığı 0-dır və onlar A sütunundadır — bu halı unutma.
Yoxlama: 30 % 8 = 6 → C ✓ (8-ci sətir: 32 31 30 29).
a = int(input())
r = a % 8
if r == 1 or r == 0:
print('A')
elif r == 2 or r == 7:
print('B')
elif r == 3 or r == 6:
print('C')
else:
print('D')3-cü ailə — siyahıya daxil edilən n ədəd. Əvvəl n, sonra n ədəd oxunur və boş siyahıya yığılır; sonra siyahı ya bütövlükdə (min, max, sum), ya da element-element emal olunur. 2026-cı ildə bu ailədən «hər element + ən kiçik element» və «klasterlərə tam yerləşən fayllar» tipli tapşırıqlar verilib.
n sayda tam ədəd boş siyahıya klaviaturadan daxil edilir. Elementləri ilkin siyahının ən böyük elementi ilə hər elementin fərqi olan yeni siyahını çap edən proqramı yazın.
Giriş → Çıxış (birinci ədəd n-dir, hər ədəd ayrı sətirdə)
4, 3, 10, −2, 7 → [7, 0, 12, 3]
3, 5, 5, 1 → [0, 0, 4]
Həllini göstərHəllini gizlət
n = int(input()), a = [], dövrdə a.append(int(input())).m = max(a) bir dəfə, ikinci dövrdən əvvəl hesablanır.Yeni siyahı
b boşdan qurulur: b.append(m - x).Çıxış kvadrat mötərizəlidir →
print(b).Yoxlama: max = 10 → 10 − 3, 10 − 10, 10 − (−2), 10 − 7 = [7, 0, 12, 3] ✓.
n = int(input())
a = []
for i in range(0, n):
a.append(int(input()))
m = max(a)
b = []
for x in a:
b.append(m - x)
print(b)Qovluqdakı n faylın Kbaytla həcmləri boş siyahıya daxil edilir. Klaster ölçüsü 8 Kbayt olarsa, faylların diskdə tutduğu ümumi yeri (Kbaytla) çap edən proqramı yazın.
Giriş → Çıxış
3, 20, 8, 1 → 40
4, 16, 17, 7, 40 → 88
Həllini göstərHəllini gizlət
Klasterlərin sayı:
x // 8, qalıq varsa + 1 (yuxarı yuvarlaqlaşdırma).20 Kbayt → 3 klaster = 24 Kbayt; 8 → 8; 1 → 8. Cəmi 40 ✓.
Yoxlama 2: 16 + 24 + 8 + 40 = 88 ✓.
n = int(input())
a = []
for i in range(0, n):
a.append(int(input()))
s = 0
for x in a:
k = x // 8
if x % 8 != 0:
k = k + 1
s = s + k * 8
print(s)n sayda tam ədəd boş siyahıya daxil edilir. Ədədi ortadan böyük olan elementlərin sayını çap edən proqramı yazın.
Giriş → Çıxış
5, 4, 9, 1, 6, 10 → 2
3, 5, 5, 5 → 0
Həllini göstərHəllini gizlət
m = sum(a) / n dövrdən əvvəl hesablanır; / kəsr verir (6.0) — müqayisə üçün bu, problem deyil.Şərt ciddidir: «böyük» →
x > m, >= yox.Yoxlama: (4 + 9 + 1 + 6 + 10) / 5 = 6; 6-dan böyük 9 və 10 → 2 ✓. Bütün elementlər bərabərdirsə, heç biri ortadan böyük deyil → 0.
n = int(input())
a = []
for i in range(0, n):
a.append(int(input()))
m = sum(a) / n
k = 0
for x in a:
if x > m:
k = k + 1
print(k)4-cü ailə — hər ədədin rəqəmləri. Hər ədədin rəqəmləri ayrıca yoxlanır; bunu köməkçi funksiyaya vermək rahatdır («Funksiya: def, parametrlər və return» dərsinə bax). 2026-cı ildə «bütün rəqəmləri tək olan ədədlər» tapşırığı bu ailədən idi.
Klaviaturadan daxil edilən n natural ədəddən bütün rəqəmləri cüt olanları (hərəsini ayrı sətirdə), belə ədəd yoxdursa «yoxdur» sözünü çap edən proqramı yazın.
Giriş → Çıxış
4, 248, 1234, 60, 7 → 248 və 60 (iki sətirdə)
2, 13, 5 → yoxdur
Həllini göstərHəllini gizlət
even_digits(n) rəqəmləri sondan bir-bir yoxlayır: tək rəqəm tapılan kimi return False; dövr bitdisə, return True.Uyğun ədəd dövrün içində çap olunur (çıxışda bir neçə sətir var), sayğac
k isə yoxdur üçün lazımdır.Yoxlama: 248 → 8, 4, 2 cüt ✓; 1234 → 4 cüt, 3 tək ✗; 60 ✓; 7 ✗.
def even_digits(n):
while n > 0:
if n % 10 % 2 == 1:
return False
n = n // 10
return True
n = int(input())
a = []
for i in range(0, n):
a.append(int(input()))
k = 0
for x in a:
if even_digits(x):
print(x)
k = k + 1
if k == 0:
print('yoxdur')Daxil edilən a və b (a < b) natural ədədləri üçün [a; b] parçasındakı palindrom ədədlərin (121, 44, 7 kimi — tərsinə oxunanda dəyişməyən) sayını çap edən proqramı yazın.
Giriş → Çıxış
10, 60 → 5
100, 130 → 3
1, 9 → 9
Həllini göstərHəllini gizlət
str(x) == str(x)[::-1] — sətir öz tərsi ilə eynidir.«Funksiya: def, parametrlər və return» dərsindəki
rev funksiyası ilə x == rev(x) yazmaq da olar.Yoxlama: [100; 130]: 101, 111, 121 → 3 ✓. Birrəqəmli ədədlərin hamısı palindromdur.
a = int(input())
b = int(input())
k = 0
for x in range(a, b + 1):
if str(x) == str(x)[::-1]:
k = k + 1
print(k)5-ci ailə — sətirlər. Sətir ya bütöv oxunur (s = input()) və simvol-simvol gəzilir, ya da split(' ') ilə hissələrə bölünür. 2025-ci ildə bu ailədən «sətirdə müxtəlif simvolların sayı» və «3 ilə başlayıb 6 ilə bitən elementlərin indekslərinin cəmi» tipli tapşırıqlar verilib.
Klaviaturadan daxil edilən sətirdə yalnız bir dəfə rast gəlinən simvolların sayını çap edən proqramı yazın.
Giriş → Çıxış
abracadabra → 2
python → 6
10 + 20 = 30 → 5
Həllini göstərHəllini gizlət
ch üçün s.count(ch) == 1 yoxlanır; boşluq da simvoldur.«10 + 20 = 30»: 0 üç dəfə, boşluq dörd dəfə var; bir dəfə rast gəlinənlər 1, +, 2, =, 3 → 5 ✓.
Fərqli sual — «müxtəlif simvolların sayı» — başqa skeletdir: yeni sətirə və ya siyahıya hər simvolu yalnız bir dəfə əlavə et, sonda
len çap et.s = input()
k = 0
for ch in s:
if s.count(ch) == 1:
k = k + 1
print(k)Siyahının elementləri bir sətirdə, aralarında 1 boşluq olmaqla daxil edilir. Birinci və sonuncu simvolu eyni olan elementlərin indekslərindən ibarət siyahını, belə element yoxdursa «yoxdur» sözünü çap edən proqramı yazın.
Giriş → Çıxış
aba 12 x 707 ab 55 → [0, 2, 3, 5]
ab cd → yoxdur
Həllini göstərHəllini gizlət
a = input().split(' ') elementləri sətir kimi verir — burada ədədə çevirmək lazım deyil, çünki simvollar müqayisə olunur.İndeks lazımdır →
for i in range(0, len(a)); element w = a[i], birinci simvol w[0], sonuncu w[-1].Birsimvollu «x» üçün
w[0] və w[-1] eyni simvoldur → uyğundur.Yoxlama: aba (0), x (2), 707 (3), 55 (5) → [0, 2, 3, 5] ✓.
a = input().split(' ')
b = []
for i in range(0, len(a)):
w = a[i]
if w[0] == w[-1]:
b.append(i)
if len(b) == 0:
print('yoxdur')
else:
print(b)Bal itirən səhvlər və özünü yoxlama
| Səhv | Nə olur | Düzəliş |
|---|---|---|
int yoxdur: a = input() | sətirlər birləşir: '12' + '5' = '125'; müqayisə əlifba ilə gedir: '9' > '10' | a = int(input()) |
range(1, n) | n-in özü yoxlanmır: bölən n və ya parçanın ucu b itir | range(1, n + 1) |
print dövrün içində | bir ədəd əvəzinə çoxlu sətir | print-i dövrdən sonra, sağa çəkmədən yaz |
yoxdur budağı yoxdur | uyğun ədəd olmayanda 0 və ya boş siyahı çap olunur | dövrdən sonra if k == 0: → print('yoxdur') |
| çıxışda artıq mətn | input('n='), print('k =', k) — çıxış «Çıxış» sütunu ilə üst-üstə düşmür | input() və yalnız tələb olunanı çap edən print |
| sayğac sıfırlanmayıb | NameError və ya səhv cəm | dövrdən əvvəl k = 0, s = 0, b = [] |
sintaksis: if x = 5, : unudulub, girinti qarışıb | proqram ümumiyyətlə işləmir | == müqayisə edir, = mənimsədir; hər blok 4 boşluq |
- 1Nümunələri izlə
Hər «Giriş» nümunəsini dəyişənlər cədvəli ilə proqramdan keçir; nəticə «Çıxış» sütunu ilə hərfbəhərf eyni olmalıdır.
- 2Sərhədləri yoxla
Uyğun element olmayan hal (
yoxdur), bir elementli siyahı, parçanın ucları a və b özləri. - 3Çıxışın şəklini yoxla
Bir
printdövrdən sonra? Siyahı mötərizədə? Söz tapşırıqdakı kimi (yoxdur)? - 4Sintaksisi yoxla
İki nöqtələr, girintilər, şərtdə
==,int(input())-da iki cüt mötərizə. - 5Şərti yenidən oxu
«sayını» yoxsa «cəmini»? «tək» yoxsa «cüt»? «böyük» yoxsa «böyük və ya bərabər»?
def solve(a, b):
s = 0
for x in range(a, b + 1):
r = int(x ** 0.5)
if x % 2 == 0 and r * r == x:
s = s + x
if s == 0:
return 'yoxdur'
return s
tests = [(10, 70, 116), (50, 60, 'yoxdur'), (1, 4, 4)]
for a, b, expected in tests:
got = solve(a, b)
print(a, b, got, got == expected)▸ Gözlənilən nəticə
10 70 116 True 50 60 yoxdur True 1 4 4 True
Evdə hazırlaşanda proqramı belə yoxla: hesablamanı funksiyaya çevir və tapşırıqdakı bütün nümunələri bir dəfəyə işə sal. Sonra b + 1-i b ilə əvəz edib yenidən işə sal — üçüncü sınaq False verəcək. Səhvi tutan sınaq belə görünür: parçanın sağ ucu (b = 4) özü cavabdır.
İmtahanda a və b klaviaturadan oxunardı (a = int(input()), b = int(input())); burada onlar verilib. [a; b] parçasında rəqəmlərinin cəmi 9 olan ədədlərin sayını, belə ədəd yoxdursa yoxdur sözünü çap et.
a = 20
b = 60
# exam version: a = int(input()) and b = int(input())▸ Gözlənilən nəticə
4
Elementlər bir sətirdə, 1 boşluqla daxil edilir (imtahanda line = input()). Özündən əvvəlki elementdən böyük olan elementlərin indekslərinin cəmini çap et (0 indeksli elementin əvvəlində element yoxdur).
line = '7 12 5 30 8'
# exam version: line = input()▸ Gözlənilən nəticə
4
Yazılı tapşırıqlara hazırlığın ən yaxşı yolu hər ailədən bir tapşırığı kağız üzərində, vaxt ölçərək yazmaq və sonra kompüterdə nümunələrlə yoxlamaqdır. Proqram oxumaq bacarığı (qapalı və kodlaşdırılan tapşırıqlar) «Proqramın analizi: nəticədən giriş qiymətinə» dərsində, 88-ci tapşırığın blok-sxemi isə «Blok-sxemin qurulması: yazılı tapşırıqlar» dərsində məşq olunur.
Əsas fikirlər
- 89 və 90-cı tapşırıqlar Python proqramıdır; markerlər 0, ⅓, ½, ⅔ və ya 1 bal verir, bir yazılı tapşırıq iki kodlaşdırılan tapşırıq qədər çəkiyə malikdir.
- «Giriş» sütunu
input()çağırışlarını, «Çıxış» sütunu isə çap olunmalı olanı dəqiq göstərir. - Skelet həmişə eynidir: daxiletmə → sayğac, cəm və ya boş siyahı → dövr və şərt → dövrdən sonra çıxış.
- Söz çıxışı (
yoxdur) dövrdən sonraif–elsetələb edir. - Ən çox bal itirən səhvlər:
intyoxdur,range(1, n),printdövrün içində, çıxışda artıq mətn.
Özünü yoxla
12 sual. Hər düzgün cavab XP qazandırır.