Структура списък - решени задачи
четни и нечетни числа
Да се състави програма, чрез която се въвеждат естествено число N, принадлежащо на [1000..10000].
Програмата да изведе и запише в структура списък N броя псевдослучайни числа от интервала [100..1000].
Да се изведе съдържанието на списъка по реда на въвеждането му.
Да се изведе повторно съдържанието на списъка като:
първо се извеждат всички четни числа във възходящ ред, а след това всички нечетни числа също във възходящ ред.
Пример: 15 Изход: 141; 567; 134; 500; 369; 524; 778; 658; 962; 264; 405; 345; 881; 727; 161;
След сортиране: 134; 264; 500; 524; 658; 778; 962; 141; 161; 345; 369; 405; 567; 727; 881;
промяна на стойност
По въведено естествено число N от интервала [10..1000010], да се изведат и запишат в списък N броя псевдо случайни числа от интервала [100..999].
По въведено второ естествено число M от интервала [1..N] стойността от списъка в позиция M да се промени на M*M.
Да се изведе актуализираното съдържание на списъка.
Пример: N=10, M=5 Изход: 141; 567; 134; 500; 369; 524; 778; 658; 962; 264;
След обработка: 141; 567; 134; 500; 25; 524; 778; 658; 962; 264; 369;
минималния елемент
Да се състави програма, чрез която се въвежда естествено число N от интервала [10..100].
Да се генерират N броя псевдослучайни естествени числа от интервала [1..1000].
Числата да бъдат записани в едносвързан списък. Програмата да изведе: всички елементи на списъка по реда на въвеждането им, минималния елемент и средната стойност на въведените елементи.
Пример: 10 Изход: генерирани числа: 42 468 335 501 170 725 479 359 963 465
минималния елемент е:42; средна стойност 450.7
минимален брой събираеми
Да се състави програма, чрез която се въвежда естествено число N от интервала [10..100].
Да се генерират N броя псевдослучайни естествени числа от интервала [1..1000].
Числата да бъдат записани в едносвързан списък. Програмата да изведе всички елементи на списъка по реда на въвеждането им и тяхната обща сума.
Сумата да бъде представена и като сума от минимален брой събираеми, представляващи произведения от степени на 11.
Пример: 10 Изход: генерирани числа: 42 468 335 501 170 725 479 359 963 465
Обща сума = 4507 = 3*1331 + 4*121 + 2*11 + 8*1
делители на число
Да се състави програма, чрез която се въвежда естествено число N от интервала [2...15].
Програмата да генерира, изведе и запише в списък N броя псевдослучайни едноцифрени числа.
От всички въведени цифри да се формира ново естествено число M.
Да се изведат всички делители на новото число M или съобщение, че въведеното число е просто.
Пример: N=5; Изход: 97257;
делители: 3 и 32419; 17 и 5721; 51 и 1907
сума на елементи
Да се състави програма, чрез която се въвежда естествено число N от интервала [5..105].
Програмата да генерира, изведе и запише в списък N броя псевдослучайни числа от интервала [1..1001].
Към всяко четно число от списъка да се добави 1 и отново да се изведе съдържанието на списъка.
Да се изведе общата сума на новите елементи в списъка.
Пример: N=10
Начално състояние: 42 468 335 501 170 725 479 359 963 465
След обработване: 43 469 335 501 171 725 479 359 963 465
обща сума на елементи: 4510
сито на Ератостен
Да се състави програма, чрез която се въвежда естествено число N от интервала [10..10000001].
Програмата да изведе и запише в структура списък всички прости числа от интервала [2..N].
Използвайте алгоритъм "сито на Ератостен" за формиране елементите на списъка.
Пример: N=64
Изход: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61
равни и близки стойности
Да се състави програма, чрез която се въвеждат 2 естествени числа N и M, принадлежащи на [5..105].
Програмата да изведе и запише в структура списък N броя псевдослучайни числа от интервала [0..101].
От списъка да бъдат изтрити всички елементи с равни и близки стойности, чиято разлика между стойностите не надвишава числото M.
Да се изведе новото съдържание на списъка.
Пример N=20, M=5
Изход: 72; 66; 93; 59; 85; 26; 93; 10; 51; 58; 32; 11; 49; 87; 70; 31; 24; 26; 21; 12;
След изтриване на равни и близки стойности: 10; 21; 31; 49; 59; 70; 85;
последователност от скоби
В алгебричен израз чрез последователност скоби се указва приоритет за изпълнение на отделните действия. Правилният запис изисква броят на левите и десните скоби да е еднакъв.
Друго задължително изискване за правилната последователност от скоби е броят на левите скоби да не превишава броят на десните в нито една част на израза. Двойките, отваряща и затваряща, скоби могат да се комбинират по различни начини.
Пример:
1 двойка (); 1 начин
2 двойки () (); (()); 2 начина
3 двойки: ((())); ()(()); ()()(); (())(); (()()); 5 начина
Да се състави програма, чрез която в списък се записват всички верни последователности от 1..35 двойки скоби и по въведено число N се извежда броят верни последователности.
равно отдалечени елементи
Да се състави програма, чрез която се въвеждат естествено число N, принадлежащо на [5..105]. Програмата да изведе и запише в структура списък N броя псевдослучайни числа от интервала [0..101].
Да се изведе съдържанието на списъка по реда на въвеждането му. Елементите в списъка да бъдат сортирани във възходящ ред и изведени по двойки.
Във всяка двойка елементите са равно отдалечени от средата на списъка. Да се изведе и сумата на всяка двойка елементи.
Пример: 10 Изход: 41; 47; 34; 40; 29; 4; 18; 18; 22; 44;
След сортиране:
суми на равно отдалечени елементи: 4 + 47 = 51; 18 + 44 = 62; 18 + 41 = 59; 22 + 40 = 62; 29 + 34 = 63
максимална повърхнина
По въведено име на файл с директен достъп се записват данни за основни ръбове и апотема на страна за N броя пресечени правилни четириъгълни пирамиди. h е апотема на околна страна,a и b са дължини на основни ръбове. Всички те са естествени числа от интервала [1..99]. Програмата да чете данните от файла и да ги записва в структура списък. Да се изведе изчислената максимална пълна околна повърхнина на пресечена пирамида. Пример: N=5 Изход: a=60;b=41;h=9;a=1;b=56;h=76;a=78;b=41;h=29;a=31;b=13;h=75;a=34;b=15;h=23; максимална повърхнина S: 14667 за: a=78, b=41, h=29
прости и съставни числа
Да се състави програма, чрез която се въвежда естествено число N от интервала [2..1000002].
Програмата да генерира N броя псевдослучайни числа от интервала [2..1000002] и да ги запише в списък.
Да се изведат две отделни наредени редици. Първата редица съдържа всички прости числа измежду въведените, а втората останалите съставни числа.
Пример: N=10. Изход: 19118; 2650; 11912; 27141; 2453; 26460; 5456; 32648; 18134
прости числа: 19993
съставни числа: 2453; 2650; 5456; 11912; 18134; 19118; 26460; 27141; 32648
триъгълник на Паскал
Да се състави програма, чрез която се въвежда естествено число N от интервала [2..55]. Програмата да изведе съответните коефициенти на бинома (x+1) повдигнат на степен N.
Изчислените биномни коефициенти са елементи от триъгълник на Паскал и се съхраняват в списък. Пример: N=4 Изход:
степен 0: 1
степен:1: 1 1
степен:2: 1 2 1
степен:3: 1 3 3 1
степен:4: 1 4 6 4 1
Указание: всеки ред от триъгълника на Паскал с номер 2 и по-голям се извежда от предходния ред. Елементите са сума от съответните два елемента от предходния ред.
изтриване на елемент
Да се състави програма, чрез която се въвеждат две естествени числа N и M от интервала [5..105], като N>M.
Програмата да генерира, запише в първи списък и изведе N броя трицифрени псевдослучайни. Да се генерират и запишат във втори списък M числа, които представляват номера на елементи от първия списък.
Във втория списък да се отстранят всички повтарящи се стойности.
Да се изведат всички стойности от първия списък, които трябва да се изтият, както и актуализираното състояние на първия списък след изтриване на указаните елементи.
Пример: N=6 M=2 Изход:
първи списък: 1:749; 2:874; 3:606; 4:782; 5:670; 6:218;
втори списък с номера за изтриване: 6,4
съдържание на списъка след изтриване на елементи: 1:749; 2:874; 3:606; 4:670
изтриване на равни елементи от два списъка
Да се състави програма, чрез която се въвеждат две естествени числа N и M от интервала [5..105]. Програмата да генерира, запише в списък и изведе две редици от псевдо случайни трицифрени числа.
Да се изтрият равните елементи - числа, както от всеки списък, така и принадлежащите и на двата списъка. Да се изведе актуализираното съдържание на списъците. Пример: N=10, M=10 Изход:
Списък I: 1:104; 2:108; 3:119; 4:120; 5:125; 6:129; 7:132; 8:135; 9:137;
Списък II: 1:104; 2:109; 3:119; 4:126; 5:127; 6:131; 7:137; 8:147; 9:148;
изтриване на равни елементи: 104, 119, 137
Съдържание на двата списъка:
1:108; 2:120; 3:125; 4:129; 5:132; 6:135;
1:109; 2:126; 3:127; 4:131; 5:147; 6:148;
вмъкване на елементи
Да се състави програма, чрез която се въвежда естествено число N от интервала [5..105].
Програмата да генерира, запише в списък и изведе N броя от псевдо случайни трицифрени числа.
Списъкът да се сортират във възходящ ред, като се изтрият равните стойности. Останалите елементи на списъка да се разглеждат по съседство два по два. Всяка двойка от тях формира граница на даден интервал.
Програмата да вмъкне в списъка нови елементи - всички числа, принадлежащи на тези граници.
Пример: N=5 Изход: 107; 126; 112; 101; 104
След сортиране: 101, 104; 107, 112; 126
След вмъкване на новите елементи: 101, 102, 103, 104, 107, 108, 109, 110, 111, 112, 126
дълго число като сума от произведения
Входни данни: естествено число N от интервала [5..105].
Програмата да генерира, запише в списък и изведе дълго число с N броя от псевдо случайни цифри.
Да се формира най-голямото естествено дълго число със същите цифри и да се изведе като сума от произведения на два множителя. Първият множител е число с еднакви цифри, а втоеият е степен на 10.
Пример: N=25 Изход:2314157164412561695429100
дълго число като сума от произведения: 9976665554444322211111100 = 99*10^23 + 7*10^22 + 666*10^19 + 555*10^16 + 4444*10^12 + 3*10^11 + 222*10^8 + 111111*10^2
палиндром със същите цифри
Входни данни: естествено число N от интервала [2..10002].
Програмата да генерира, запише в списък и изведе дълго число с N броя от псевдо случайни цифри.
Да се изведе възможно най-късия палиндром - естествено число, което има всички по брой и вид цифри.
Пример: N=12 Изход: 773630402697
най-къс палиндром със същите цифри: 977643020346779
списък_промяна_стойности
Входни данни: естествено число N от интервала [10..1010].
Програмата да генерира, запише в списък и изведе N броя от псевдо случайни трицифрени числа.
Всички елементи на списъка да променят, увеличат стойността си с поредния си номер.
Пример: N=10 Изход: 614 597 138 893 352 517 528 428 314 395
след промяна стойности на елементите: 615 599 141 897 357 523 535 436 323 405
елементи на кратна позиция
Входни данни: две естествени числа N и M от интервала [10..1010].
Програмата да генерира, запише в списък и изведе всички естествени числа от интервала [1..N]. Числото M
Процесът на изтриване на числата продължава, докато броя елементи в началния списък стане M-1.
Пример: N=64, M=10 Изход: първите няколко изтрити елемента са: 10 20 30 40 50 60 6 17 28 39 51 62 9 22....
след изтриване на всички елементи на кратна позиция са останали: 2 3 18 32 36 42 45 47 59
сортиране чрез пряко вмъкване
По въведено естествено число N от интервала [5..105], програмата да генерира, изведе и запише в списък N броя трицифрени числа.
Да се илюстрира алгоритъм за сортиране - пряко вмъкване, т.е. последователно всеки нов елемент се вмъква на подходящото място спрямо предходните елементи от списъка.
Пример: N=10 Изход: 548 335 491 122 507 889 896 397 708 203
548
335 548;
335 491 548;
122 335 491 548;
122 335 491 507 548;
122 335 491 507 548 889;
122 335 491 507 548 889 896;
122 335 397 491 507 548 889 896;
122 335 397 491 507 548 708 889 896;
122 203 335 397 491 507 548 708 889 896;
общ брой инверсии
По въведено естествено число N от интервала [5..105]. програмата да генерира, изведе и запише в списък N броя трицифрени числа.
Да се изведе съобщение дали списъкът е сортиран във възходящ ред.
Ако не е, да се изведат брой инверсии в списъка, т.е. колко броя елементи с по-висока стойност са пред елементи с по-малка стойност.
Пример: N=10 Изход: 285, 257, 397, 589, 842, 805, 678, 907, 194, 650;
общ брой инверсии в списъка: 16
сума от степени
По въведено естествено число N от интервала [2..10002] програмата да генерира, изведе и запише в списък дълго число с N броя цифри.
Второто въведено естествено число е M от интервала [2..10002]. Програмата да представи числото N като сума от произведения на степени, съдържаща минимален брой елементи. Всички те са елементи на списък.
Единият множител е уникална степен на M, а другият число от интервала [0..M-1].
Пример: N=10; M=9; Изход: дълго число 1316598806
сума от степени :3*9^9 + 3*9^8 + 5*9^7 + 2*9^6 + 3*9^5 + 6*9^4 + 4*9^3 + 0*9^2 + 2*9^1 + 2*9^0
кратно на 11
Да се състави програма, чрез която се въвежда естествено число N от интервала [5..100005].
Програмата да генерира дълго число съдържащо N броя цифри и да го записва в списък.
Да се изведе резултата от проверката дали дългото число е кратно на 11, 44, 55 или 66.
Пример: N=16 Изход: 1590180812399652
кратно на 11
кратно на 44
не е кратно на 55
кратно на 66
умножение на два полинома
Да се състави програма, чрез която се въвеждат две естествени числа N и M от интервала [2..4004].
Програмата да генерира 2 редици съдържащи съответни N и M броя псевдослучайни естествени числа и да ги записва в списък.
Числата, елементи на списъка, представляват коефициенти пред съответните степени на два полинома.
Да се изведе резултата от умножение на двата полинома.
Пример: N=5; M=3 Изход:
Коефициенти в полином 1: 8 39 10 60 21 37
Коефициенти в полином 2: 5 54 1 17
резултат от умножение на двата полинома: 40 627 2164 1015 4018 1549 3039 394 629
степенуване на полином
По въведени две естествени числа N и M от интервала [2..12] програмата да генерира и запише в списък N броя псевдослучайни естествени числа.
Числата, елементи на списъка, представляват коефициенти пред съответните степени на полином.
Числото N дава най-високата степен в полинома, а M на коя степен се повдига, степенува полинома.
Да се изведе резултата от степенуване на въведения полином.
Пример: N=1; M=10 Изход:
Коефициенти в полином: 1, 1
резултат след степенуване на полином: 1 10 45 120 210 252 210 120 45 10 1
точки и триъгълник
Да се състави програма, чрез която се въвеждат координатите на N броя точки.
N е естествено число от интервала [3..1003], а координатите на точките са естествени числа от интервала [0..99].
Координатите на всяка точка се записват във файл. Програмата да прочете информацията от файла и да я запише в структура списък.
Да се изведе триъгълника с най-голямото лице, чийто върхове са кои да е три съседни точки от списъка.
Пример: N=6 точки: 78, 87; 55, 77; 90, 12; 89, 89; 61, 58; 29, 6
най голямо лице е S = 1315 на триъгълник с върхове точки: 55,77; 90,12; 89,89
върхове на квадрат
Да се състави програма, чрез която се въвеждат координатите на N броя точки.
N е естествено число от интервала [3..1003], а координатите на точките са естествени числа от интервала [0..99].
Координатите на всяка точка са записани във файл. Програмата да прочете информацията от файла и да я запише в структура списък.
Да се изведат всички двойки точки, които представят диагонал на квадрат.
Пример: N=10 точки: 66,88; 86,8; 36,49; 17,25; 17,79; 2,96; 50,46; 81,38; 37,72; 59,94
Изход:
квадрат с върхове 17,79; 50,46; е с лице: 1089
квадрат с върхове 37,72; 59,94 е с лице: 484
цифри на дълго число
Да се състави програма, чрез която се въвежда естествено число N от интервала [25..1000002]. Програмата да генерира дълго число с N броя псевдослучайни цифри и да го запише в структура списък.
Да се изведе огледалното представяне на дългото число, както и броя на отделните цифри.
Пример: N=25 дълго число: 3960542981778178807045614
огледално дълго число: 4165407088718771892450693
въведеното дълго число има следния по брой и вид цифри:
9*2 + 8*4 + 7*4 + 6*2 + 5*2 + 4*3 + 3*1 + 2*1 +1*3 +0*3
равни суми
Да се състави програма, чрез която се въвежда естествено число N от интервала [10..10000]. Програмата да генерира и запише в списък N броя псевдослучайни числа от интервала [10..100].
Числата представляват стойности, които трябва да се разделят по равно, на две равни суми.
Да се изведе резултат от проверката дали е възможно елементите на списъка да формират две равни суми, т.е. дали предметите могат да бъдат разделени на две групи с максимална разлика 1 в крайните суми.
Пример: N=11 числа: 67, 52, 97, 36, 35, 84, 61, 75, 85, 55, 77 = 724
I-ва част: 75, 35, 36, 97, 52, 67 = 362
II-ра част: 85, 55, 77, 61, 84 = 362
първия ред от файл
Съществува предварително сортиран текстов файл. Да се състави програма, чрез която се чете началния файл и се записва съдържанието му в структура списък.
Програмата да изведе в друг файл само първия ред от множество съседни редове, чийто леви N знака са повтарящи се леви N знака за 2 и повече съседни реда.
Максималната дължина на ред е 256 символа, N е естествено число от интервала [1..20].
Примерна последователност за N=4: abcd111, abcd2222,abcd333
Изход: abcd111
прости делители
Да се състави програма, чрез която се записват във файл N броя псевдослучайни естествени числа от интервала [100..10000]. N е естествено число от интервала [3..1003].
Програмата да запише в структура списък всички числа от файла и да изведе: уникалните прости делители на прочетените числа, сумата от простите делители, както и сумата на нейните уникални прости делители.
Пример: N=5 Изход: 5809, 8431, 9926, 1147,
сума на прости делители: 2, 7, 31, 37, 157, 709, 4073, 8431 = 13447
сума на уникални прости делители: 13447: 7+17+113 = 137
сортиране на файл
Да се състави програма, чрез която се записват във файл N броя реални числа. N е естествено число от интервала [3..1003].
Програмата да запише в структура списък всички числа от файла и да ги изведе, сортирани във възходящ ред, в нов файл.
Пример: N=7 Изход: 155.99;174.27;145.12;371.06;105.72;293.22;160.96
след сортиране на файла: 105.72;145.12;155.99;160.96;174.27;293.22;371.06
естествено число в код на Грей
Да се състави програма, чрез която се въвеждат естествено число N, принадлежащо на интервала [5..105]. Програмата да изведе и запише в структура списък N броя псевдослучайни числа от интервала [0..101]. Въведените числа да се представят и в код на Грей.
Да се изведе съдържанието на списъка по ред обратен на въвеждането му по следния начин: въведеното число в 10-ична и 2-ична бройна система, същото число в код на Грей в 10-ична и 2-ична бройна система.
Пример: 4 Изход: 47; 34; 40; 29;
число 29 = 11101; в код на Грей 19 = 10011
число 40 = 101000; в код на Грей 60 = 111100
число 34 = 100010; в код на Грей = 110011
число 47 = 101111; в код на Грей = 111000
минимален остатък
Съществуват две групи правоъгълници A и B с размери на страните естествени числа. Размерите не са непременно различни..
Трябва да се изберат такива двойки правоъгълници от двете групи, че да същестува минимален остататък при наслагването им.
Да се състави програма, чрез която се въвеждат две естествени числа N>M. Програмата да генерира съответно N и M двойки естествени числа, които да се записват в списък..
Да се изведе резултата от подбора на възможните двойки, така че да съществува минимален остатък при изрязване на правоъгълник от първата група на съответен правоъгълник от втората група..
Пример: N=8, M=3
списък 1: 872,760; 359,136; 854,837; 880,805; 994,905; 357,141; 323,310; 791,360;
списък 2: 954,873; 839,108; 765,359;
минимален остатък: 994,905>=954,873;
минимален остатък: 854,837>=839,108;
минимален остатък: 791,360>=765,359;
оставащи в списък 1: 323,310; 357,141; 359,136; 872,760; 880,805;
Да се състави програма (C++), чрез която се въвежда естествено число N от интервала [5..1005].
Програмата да генерира N броя псевдослучайни естествени числа от интервала [10..99] и да ги запише в списък.
Тези числа са елементи от 1-вия ред на квадратна таблица.
Да се изведат останалите N-1 реда на таблицата, като във всеки следващ ред новите числа са преместени с 1 позиция наляво.
Първото число на предходния ред е заело последната позиция.
Програмата да изведе всички редове на квадратната таблица.
Пример: N = 6, числа: 68 60 14 69 58 82 Изход:
68 60 14 69 58 82;
60 14 69 58 82 68;
14 69 58 82 68 60;
69 58 82 68 60 14;
58 82 68 60 14 69;
82 68 60 14 69 58;