Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Решение задач с использованием циклов
ЗАДАЧА 10. Составить таблицу значений функции y=esin(x)cos(x) на отрезке [xn; xk] с шагом dx. Найти сумму положительных значений y и произведение отрицательных y. Входные данные: xn, xk, dx. Выходные данные: множество значений x и y, S – сумма положительных значений y и P – произведение отрицательных значений y. Блок-схема алгоритма решения задачи на рис. 13. Рис. 13. Алгоритм решения задачи 10 Текст программы c соответствующими комментариями приведен далее. #include < stdio.h> #include < math.h> int main() { //Описание всех переменных float xn, xk, dx, x, y, s, p; printf(" Введите xn, xk, dx"); scanf(" %f%f%f", & xn, & xk, & dx); for(s=0, p=1, x=xn; x< =xk; x+=dx) { y=exp(sin(x))*cos(x); printf(" X=%g\tY=%g\n", x, y); if (y< 0) p*=y; else s+=y; } printf(" S=%g\tP=%g\n", s, p); } ЗАДАЧА 11. Вычислить значения z, которые соответствуют каждому значению х (x = 1; dx = 0.5) по формуле: . Считать z до тех пор, пока подкоренное выражение больше или равно 0.02. Определить k — количество вычисленных z. Входные данные: xn, dx. Выходные данные: множество значений x и y, k – количество выполненных итераций цикла. Блок-схема алгоритма на рис. 14. Текст программы, соответствующий б/с алгоритма приведен далее. Рис. 14. Алгоритм решения задачи 11 #include< stdio.h> #include< math.h> void main() { float x, dx, z; int k=0; printf(" x="); scanf(" %f", & x); printf(" dx="); scanf(" %f", & dx); while (x/(x*x*x+1)> 0.02) { z=log(x)*sqrt(x/(x*x*x+1)); printf(" \n x=%f \t z=%f \n", x, z); k++; x=x+dx; } printf(" \n k=%d", k); }
|