русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Практическая часть


Дата добавления: 2015-06-12; просмотров: 764; Нарушение авторских прав


Пример 1. Напишите программу решения квадратного уравнения с проверкой на наличие вещественных (не комплексных) корней на основе только операторов if. Вид квадратного уравнения:

Как известно, квадратное уравнение будет иметь вещественные корни, если его дискриминант будет неотрицательным, т.е. когда

Программный код решения примера:

#include <stdio.h>#include <conio.h>#include <math.h> int main(void) { float a, b, c; float D, x1, x2, x; printf("\n\t Equation a*x^2 + b*x + c = 0\n"); printf("\n\t Enter the coefficient a: "); scanf_s("%f", &a); printf("\t Enter the coefficient b: "); scanf_s("%f", &b); printf("\t Enter the coefficient c: "); scanf_s("%f", &c); D = b*b - 4*a*c; if (D >= 0 && a != 0) { x1 = -b/(2*a) + (float)sqrt(D)/(2*a); x2 = -b/(2*a) - (float)sqrt(D)/(2*a); printf("\n\t The roots of the equation:\n\t x1 = %1.4f, x2 = %1.4f\n", x1, x2); } if (D < 0) printf("\n\t The roots of complex\n"); if (a == 0 && b != 0) { x = -c/b; printf("\n\t As a = %1.0f,\n\t the solution of the equation is: %1.4f\n", a, x); } printf("\n Press any key: "); _getch(); return 0;}

Возможный результат выполнения программы показан на рис. 4.1.

Рис. 4.1. Результат решения квадратного уравнения

В программе последовательно проверяются условия с помощью операторов if. В последнем случае, когда коэффициент а = 0, квадратное уравнение вырождается и превращается в линейное уравнение. Решение в этом случае очевидно.

В программе применены функции scanf_s() вместо стандартной функции scanf() языка С. Это сделано для того, чтобы по этим функциям не было предупреждений (warning) в MS Visual Studio 2008.

Кроме того, в программу подключена библиотека math.h для действий с математическими функциями, например, sqrt().



В первом операторе if применено логическое условие И ( && ) для проверки того, что дискриминант не равен отрицательному значению и одновременно чтобы первый коэффициент квадратного уравнения не был равен нулю. Аналогичное условие прописано и для последнего оператора if.

Пример 2. Напишите программу решения квадратного уравнения с проверкой на наличие вещественных корней на основе конструкции if–else. Вид квадратного уравнения:

Программный код решения примера:

#include <stdio.h>#include <conio.h>#include <math.h> int main(void) { float a, b, c; float D, x1, x2, x; printf("\n\t Equation a*x^2 + b*x + c = 0\n"); printf("\n\t Enter the coefficient a: "); scanf_s("%f", &a); printf("\t Enter the coefficient b: "); scanf_s("%f", &b); printf("\t Enter the coefficient c: "); scanf_s("%f", &c); D = b*b - 4*a*c; if (D >= 0 && a != 0 && b != 0) { x1 = -b/(2*a) + (float)sqrt(D)/(2*a); x2 = -b/(2*a) - (float)sqrt(D)/(2*a); printf("\n\t The roots of the equation:\n\t x1 = %1.4f, x2 = %1.4f\n", x1, x2); } else { if (a == 0 && b != 0) { x = -c/b; if (c != 0) printf("\n\t As a = %1.0f,\n\t the solution of the equation is: %1.4f\n", a, x); else printf("\n\t As a = %1.0f and c = %1.0f,\n\t the solution of the equation is: %1.0f\n", a, -x); } if (D < 0) printf("\n\t The roots of complex\n"); } printf("\n Press any key: "); _getch(); return 0;}

В программе использованы вложенные операторы if.

Результат выполнения программы при исключительной ситуации показан на рис. 4.2.

Рис. 4.2. Выполнение программы с двумя нулевыми коэффициентами

Пример 3. Напишите программу классификации введенного с терминала символа на основе конструкции if–else if–else [4.1].

Символы (одиночные) будем считать как строчные и прописные буквы латинского алфавита, цифры от 0 до 9, и специальные символы.

Программный код решения примера:

#include <stdio.h>#include <conio.h> int main(void) { char c; // Ввод одиночного символа printf("\n\t Enter a single character: "); scanf_s("%c", &c); if ( c >= 'a' && c <= 'z' ) printf("\n\t This is a small letter\n"); else if ( c >= 'A' && c <= 'Z') printf("\n\t This is a capital letter\n"); else if ( c >= '0' && c <= '9') printf("\n\t This figure (digit)\n"); else printf("\n\t This is a special character\n"); printf("\n Press any key: "); _getch(); return 0;}

Результат выполнения программы показан на рис. 4.3.

Рис. 4.3. Результат классификации символа

Пример 4. Напишите программу вычисления двух целых случайных чисел и определения наибольшего из них. Определение наибольшего числа произведите с помощью оператора условия ?

Программный код решения примера:

#include <stdio.h>#include <conio.h>#include <stdlib.h> // Для функций случайных чисел#include <time.h> int main (void) { int a, b, maxab; unsigned int some; long int L; L = (long) time(NULL); some = (unsigned) L/2; srand(some); a = rand(); b = rand(); printf("\n\t Random numbers: a = %d; b = %d\n", a, b); // Оператор условия для определения максимального числа maxab = (a > b) ? a : b; printf("\n\t Maximum number: %d\n", maxab); printf("\n Press any key: "); _getch(); return 0; }

В программе использованы функции генерации псевдослучайных чисел rand() и задания исходного псевдослучайного числа srand(). Указанные функции входят в стандартную библиотечную функцию stdlib.h. Функция time() входит в библиотечную функцию time.h, которая поддерживает функции, обращающиеся к системному времени.

Для переменных L и some выполнено приведение типов.

При каждом обращении к функции rand() возвращается целое в интервале между нулем и значением RAND_MAX, которое в любой реализации должно быть не меньше числа 32 767

Возможный результат выполнения программы показан на рис. 4.4.

Рис. 4.4. Результат определения максимального числа



<== предыдущая лекция | следующая лекция ==>
Оператор if | Задание.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.148 сек.