Първо домашно
Първото домашно се състои от 10 задачи за самостоятелна работа от Сборник от задачи по програмиране на C++ на М. Тодорова, П. Армянов, Д. Петкова, К. Георгиев. Всяка правилно решено задача носи 2 т.
Моля, изпращайте решенията си като ZIP файл, който съдържа по един .cpp файл за всяка задача. Решението на всяка задача трябва да бъде във файл с име progX.cpp (с малки латински букви), където 1 <= X <= 10 е номерът на съответната задача.
По-долу са дадени условията на задачите, както и страница и номер в сборника.
Внимание: всички задачи ще бъдат тествани автоматично, затова е важно извеждането на екрана да спазва абсолютно точно това, което е указано в задачата! На лекции ще получите повече информация.
Задача 1 (стр. 107 / зад. 12з) Да се напише програма, която въвежда координатите на точка и проверява дали тя се съдържа в запълнената фигура, включително и контура. Вход: две дробни числа, разделени с интервал и означаващи координатите на точка в равнината. Изход: числото 1, ако точката се съдържа във фигурата, числото 0 в противен случай. Да не се извежда нов ред.
Задача 2 (стр. 107 / зад. 16) Да се напише програма, която по зададени коефициенти на система от 3 линейни уравнения с 3 неизвестни намира решението на системата, ако то е единствено. Вход: три реда, на всеки от които четири дробни числа, разделени с интервал и означаващи коефициентите пред неизвестните x, y и z от лявата страна на равенството и числото от дясната страна на равенството. Изход:
- ако системата има единствено решение, три дробни числа, означаващи стойностите на x, y и z
- ако системата няма решение, низа No solution
- ако системата има повече от едно решение, низа Many solutions
Да не се извежда нов ред.
Задача 3 (стр. 110 / зад. 39) Да се напише програма, която извежда на екрана числовата пирамида от първите n положителни цели числа, разделени с интервал:
1
2 3
4 5 6
7 8 9 10
...
Ако някой ред не се запълни, да се добавят звездички. Вход: числото n <= 200. Изход: пирамидата
Задача 4 (стр. 111 / зад. 43) Дадено е положително цяло число а. Да се напише програма, която намира всички положителни цели числа k и m такива, че k2 + m2 = a2. Вход: числото a. Изход: няколко реда от двойки числа k и m, отделени интервал, подредени в нарастващ ред по k (първото число). Ако такива числа няма, извежда низа No solution с нов ред накрая.
Задача 5 (стр. 112 / зад. 62) Да се напише програма, която преобразува число X записано в k-ична бройна система в число записано в р-ична. (1 < k, p < 17). Вход: три числа отделени с интервал: числото k, числото p и числото X в k-ична бройна система. Изход: числото X в в p-ична бройна система (за цифри над 9 се използват главните латински букви от A до F. Да не се извежда нов ред.
Задача 6 (стр. 183 / зад. 13) Даден е едномерен масив от цели числа a0, a1, ..., an-1 (1 ≤ n ≤ 100). Да се напише програма, която сгъстява масива като изтрива повтарящите се елементи. Вход: числото n, нов ред, числата от a0 до an-1, разделени със интервали. Изход: новата дължина на масива след сгъстяването, нов ред, елементите на сгъстения масив, отделени с интервал.
Задача 7 (стр. 184 / зад. 26) Дадени са три сортирани във възходящ ред едномерни масиви a, b, c. Да се напише програма, която определя броя на равенствата ai = bj = ck, където ai, bj и ck са елементи на масивите a, b и c съответно. Вход: три реда, всеки от които започва с цяло число ≤ 200, указващо брой елементи в масива и след това елементите на масива, разделени с интервал. Изход: едно число, указващо броя равенства. Да не се извежда нов ред.
Задача 8 (стр. 184 / зад. 29) Да се напише програма, която определя дали векторите a = (a0, a1, ..., an-1) и b = (b0, b1, ..., bn-1) (1 ≤ n ≤ 20) са линейно зависими. Вход: числото n, нов ред и след това на два отделни реда координатите на векторите a и b като дробни числа, отделени с интервали. Изход: числото 1, ако векторите са линейно зависими, числото 0 в противен случай. Да не се извежда нов ред.
Задача 9 (стр. 184 / зад. 31) Да се напише програма, която чете текст и извежда броя на еднобуквените, двубуквените и т.н. думи. За разделители на думите служат знаците: ‘ ‘, ‘,’, ‘;’ и ‘.’. Вход: текст на един ред, не по-дълъг от 1000 символа. Изход: n реда с цели числа, указващи броя на думите със съответната дължина, като n е дължината на най-дългата дума в текста.
Задача 10 (стр. 185 / зад. 47) Да се напише програма, която определя дали квадратна матрица с размерност n (1 ≤ n ≤ 20) има нулеви диагонали и ако има какъв е техният брой. Вход: числото n, нов ред, n реда с по n цели числа на всеки, отделени с интервал. Изход: едно число, указващо броя на нулевите диагонали. Да не се извежда нов ред.