Първо домашно
Първо домашно
Първото домашно се състои от 10 задачи за самостоятелна работа отСборник от задачи по програмиране на C++ на М. Тодорова, П. Армянов, Д. Петкова, К. Георгиев. Всяка правилно решено задача носи 2 т.
По-долу са дадени условията на задачите, както и страница и номер в сборника.
Моля, изпращайте решенията си като ZIP файл, който съдържа точно по един .cpp файл за всяка задача. Решението на всяка задача трябва да бъде във файл с име progX.cpp (с малки латински букви), където 1 ≤ X ≤ 10 е номерът на съответната задача. Моля, не слагайте в ZIP архива други файлове освен .cpp файловете с решенията!
Внимание: всички задачи ще бъдат тествани автоматично, затова е важно извеждането на екрана да спазва абсолютно точно това, което е указано в задачата! На лекции ще получите повече информация.
Внимание: всички задачи ще бъдат проверени автоматично за преписване. Файловете с голямо съвпадение ще бъдат проверени ръчно от лектора и при установено взаимстване ще бъдат анулирани.
Задача 1 (стр. 107 / зад. 12з) Да се напише програма, която въвежда координатите на точка и проверява дали тя се съдържа в запълнената фигура, включително и контура. Вход: две дробни числа, разделени с интервал и означаващи координатите на точка в равнината. Изход: числото 1, ако точката се съдържа във фигурата, числото 0 в противен случай. Да не се извежда нов ред.
Задача 2 (стр. 107 / зад. 16) Да се напише програма, която по зададени коефициенти на система от 3 линейни уравнения с 3 неизвестни намира решението на системата, ако то е единствено. Вход: три реда, на всеки от които четири дробни числа, разделени с интервал и означаващи коефициентите пред неизвестните x, y и z от лявата страна на равенството и числото от дясната страна на равенството. Изход:
ако системата има единствено решение, три дробни числа, разделени с интервали и означаващи стойностите на x, y и z
ако системата няма решение, низа No solution
ако системата има повече от едно решение, низа Many solutions
Да не се извежда нов ред.
Задача 3 (стр. 110 / зад. 29) Дадени са положителните числа a и m. Да се напише програма, която намира \( \sqrt[m]{a} \) с точност ε (0 < ε ≤ 0,1] по итерационната формула на Нютон: $$x_{k+1} = \frac 1 m \left( (m-1)x_k + \frac a {x^{m-1}_k} \right),$$ където x0 = a. Вход: Дробните числа a, m и ε на един ред, отделени с интервал. Изход: първото число xk, за което | xk+1 - xk | < ε.
Задача 4 (стр. 110 / зад. 40) Да се напише програма, която по дадено естествено число n извежда на екрана следната фигура от числа (примерът е за n = 4).
1 2 3 4
2 3 4
3 4
4
4 3
4 3 2
4 3 2 1
Вход: числото n ≤ 100. Изход: фигурата.
Задача 5 (стр. 111 / зад. 53) Да се напише програма, която въвежда от клавиатурата естествени числа x, a и b и намира и извежда всички числа, в интервала [a; b], сумата от цифрите, на които е равна на x. Вход: Числата x, a и b, отделени с интервал. Изход: Всички числа отговарящи на условието в нарастващ ред, като всяко число е на нов ред.
Задача 6 (стр. 112 / зад. 62) Да се напише програма, която преобразува число X записано в k-ична бройна система в число записано в р-ична. (1 < k, p < 17). Вход: три числа отделени с интервал: числото k, числото p и числото X в k-ична бройна система. Изход: числото X в в p-ична бройна система (за цифри над 9 се използват главните латински букви от A до F. Да не се извежда нов ред.
Задача 7. (стр. 113 / зад. 88) Да се напише програма, която въвежда стойности на положителните цели числа n, m, p, q, r и s и намира всички редици от операции (op1, op2, op3, op4) сред +, -, * и /, така че като се заместят в изразите ((n op1 m) op2 p) и ((q op3 r) op4 s), получените стойности да са равни. Вход: Числата n, m, p, q, r, s на един ред, разделени с интервал. Изход: Всяка редица от операции op1, op2, op3, op4, изпълняващи условието се извежда на отделен ред без интервал. Редовете трябва да са подредени така, че ако заместим + с 1, - с 2, * с 3 и / с 4, то получените четирицифрени числа да са в нарастващ ред.
Задача 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 цели числа на всеки, отделени с интервал. Изход: едно число, указващо броя на нулевите диагонали. Да не се извежда нов ред.