Още задачи за масиви

14
Още задачи за масиви

description

Още задачи за масиви. Задача 1: Да се състави програма за работа с масив от цели числа, която да въвежда от клавиатурата броя на числата и самите числа и да:. сгъстява масива, като премахва нулевите му елементи; - PowerPoint PPT Presentation

Transcript of Още задачи за масиви

Page 1: Още задачи за масиви

Още задачи замасиви

Page 2: Още задачи за масиви

1: Задача Да се състави програма за , работа смасив отцели числа която да

въвежда от клавиатурата броя на :числата и самите числа и да

a) сгъстява масива, като премахва нулевите му елементи;

b) отпечатва броя на платформите в масива. (платформа е последователност от равни елементи – в условието на задачата платформата може да бъде зададена като последователност от елементи, които изпълняват определено свойство);

c) отпечатва началния и крайния индекс на най-дългата платформа в масива;

d) разменя местата на първия елемент, равен на минималния и последния елемент, равен на максималния.

Page 3: Още задачи за масиви

2: Задача

Условие: Имаме редица от цели числа с дължина n (3<n<100). Необходимо е да се проверят качествата на дадената редица относно следните свойства, като след всяко свойство е отбелязана буквата с която ще се демонстрира наличието на свойството в проверяваната редица:

Page 4: Още задачи за масиви

a) растяща редица - всеки пореден член е не по-малък от предишния член (A).

b) строго растяща редица - всеки пореден член е по-голям от предишния член (B).

c) намаляваща редица - всеки пореден член е не по-голям от предишния член (C).

d) строго намаляваща редица - всеки пореден член е по-малък от предишния член (D).

e) осцилираща редица - ако предищния член е бил по-малък от сегашния, то следващия е по-малък или равен на сегашния и обратно - ако предишния член е бил по-голям от сегашния то следващия трябва да е по-голям или равен на сегашния (E).

f) строго осцилираща - същото като осцилираща, само че не може да има два последователни еднакви елемента (F).

g) аритметична прогресия - всеки член се получава от предишния с прибавяне на число, което е константа за цялата редица и може да е положително, отрицателно или нула (G).

h) геометрична прогресия - всеки член се получава от предишния с умножение на число, което е константа за цялата редица и може да е положително или отрицателно (H).

Page 5: Още задачи за масиви

• На стандартния вход се въвеждат няколко редици. Описанието на всяка една редица започва с число n(3<n<100)показващо нейната дължина и след което следват самите n числа елементи на редицата. За край на входа се приема редица с дължина 0;

• На екрана се извежда по един ред за всяка редица, съдържащ буквите, съответстващи на свойствата открити в редицата.

Примерен вход Примерен изход

5 1 2 3 4 5 ABG

4 1 –1 1 –1 EFH

5 1 2 3 3 8 A

8 1000 900 800 700 –1 –2 –3 –4 CD

6 -1 7 7 –8000 –90 –100 E

0

Page 6: Още задачи за масиви

Задача 3: Великата Стена разделяла Острова на Програмистите на две части-едната била на програмистите пишещи на Паскал,другата-на пишещите на С.Това било направено с цел срещите им да се сведат до нула понеже иначе се стигало до спорове завършващи в Пирогов.Стената била тухлена,като тухлите били наредени в колони,плътно залепени една до друга и с еднаква височина.Но една нощ вандали (програмисти на ассемблер) разместили тухлите като вземали от една колона и ги слагали върху някоя друга.Така стената станала неравна и можело да се мине през нея.Това било недопустимо,затова бил извикан известния майстор-QuickBasic,който трябвало да възстанови стената.Но QuickBasic имал странен нрав-искал преди да започне работа всичко да е предефинирано и известно,затова сега му е необходимо да научи с колко премествания на тухли може да се свърши работата и ако може с по-малко защото и не е много паметлив.На Вас се пада задачата да откриете (независимо от коя страна на стената сте) какъв е минималния брои тухли, които трябва да се преместят за да се изравни стената, като напишете програма WALL.EXE..Под едно преместване се разбира: вземаме една тухла от някоя колона с поне една тухла (броя на тухлите в тази колона намалява с една) и я слагаме върху някоя друга (броя на тухлите във втората се увеличава с една).

Page 7: Още задачи за масиви

• На първия ред на стандартния вход се намира цялото число N (1<= N<=3000) показващо броя на колоните в стената.На следващите N реда е самата стена,като на всеки ред се намира цяло число Xi (0<=Xi<=60000) показващо броя на тухлите в i-тата колона.Общия брой на тухлите в стената не надвишава 60000.

• На екрана да се изведе намереното число (минималния брой премествания).

• Забележка: Взимаме две тухли от четвъртата колона и ги слагаме в първата (това е едно преместване) и вземаме четири тухли от четвъртата колона и ги слагаме във втората(това е второто преместване).

Примерен вход Примерен изход

41081218

2

Page 8: Още задачи за масиви

Задача 4: Щастлива година е тази, която има в записа си две равни цифри. Да се състави програма DATE.EXE, която чете от клавиатурата последователност от години до въвеждане на 0 и извежда на екрана броя на тези от тях, които имат по две еднакви цифри.Забележка: Ще приемем ,че година е четерицифрено число.

Примерен вход Примерен изход

12341987127120010

2

Page 9: Още задачи за масиви

Задача 5: Дадени са резултатите от n (n<=100) поредни хвърляния на зарче. Да се състави програма DICE.CPP, която прочита от клавиатурата броя n на хвърлянията и падналите се числа и отпечатва:•числото, което се е падало най-често;•началния и крайния номер на най-дългата последователност от еднакви попадения.

Примерен вход Примерен изход

10 4

1 2 4 4 2 3 3 3 4 4 6 8

Page 10: Още задачи за масиви

Задача 6: Да се състави програма BANK.EXE за работа с банкови сметки. Програмата съхранява сумите на не повече от 100 банкови сметки, като извършва следните дейности по избор от меню:•въвежда сумите за n сметки (0<n<100);•добавя нова банкова сметка;•отпечатва номера на банковата сметка с най-голяма сума;•олихвява всички банкови сметки с въведен процент и отпечатва получените след олихвяването суми;•внася или изтегля суми по даден номер на банкова сметка; •по даден номер на банкова сметка отпечатва сумата.

Page 11: Още задачи за масиви

Задача 7: Да се състави подпрограма, която по дадено цяло число връща броя на различните му цифри. Като се използва тази подпрограма да се състави програма DIF.EXE, която въвежда от клавиатурата цяло положително число n (1 n 100) и след това n на брой цели положителни числа и отпечатва тези от тях, които имат точно три различни цифри.

Примерен вход Примерен изход

51123 2345 9381 23424 1234 2

Page 12: Още задачи за масиви

Задача 8: Да се състави програма MASIV1.EXE, която чете от клавиатурата цяло положително число n<=1000 и n реални числа и отпечатва на екрана колко от тях са равни на минималното от всички числа.

Примерен вход Примерен изход

83.5 5.1 4.0 3.3 8.4 3.3 4.1 3.3

3

Page 13: Още задачи за масиви

Задача 9: Да се състави програма MASIV2.EXE, която чете от клавиатурата цяло положително число n<=1000 и n на брой цели положителни числа и замества всички числа, равни на максималното със средното аритметично на всички числа. Новополучената редица да се изведе на екрана.

Примерен вход Примерен изход

83 5 4 3 8 3 8 3

3 5 4 3 4 3 4 3

Page 14: Още задачи за масиви

Задача 10: Да се състави програма MASIV3.EXE, която чете от клавиатурата цяло положително число n<=1000 и n на брой цели числа и отпечатва на екрана броя на числата равни на максималното отрицателно число. Ако няма такова число да се отпечата 0.

Примерен вход Примерен изход

83 -5 4 -3 8 -3 8 3

2