Напишем программу "kvur.c" для вычисления корней квадратного уравнения общего вида: ax2 + bx +c = 0.
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <math.h>
/*Вычисление корней квадратного уравнения*/
main()
{
float a, b, c, d, x1, x2;
char str[50];
//Очистить экран
textbackground(4);
textcolor(15);
clrscr();
//ВВод коэффициентов a, b, c
CharToOem("Введите коэффициенты a, b, c\n", str);
printf(str);
scanf("%f %f %f", &a, &b, &c);
//Вычисление дискриминанта d
d=b*b - 4*a*c;
if (d<0) {
CharToOem("Действительных решений нет", str);
printf(str);
}
else {
// Вычисление корней уравнения x1 и x2
x1=(-b - sqrt(d))/(2*a);
x2=(-b + sqrt(d))/(2*a);
// Вывод корней уравнения x1 и x2
CharToOem("\n x1=%f x2=%f", str);
printf(str, x1, x2);
};
// Конец программы
CharToOem("\nДля выхода нажмите любую клавишу", str);
printf(str);
getch();
}
Переводим целую часть числа. Заменяем каждый разряд на код из таблицы.
Двоичная СС Восьмеричная СС
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Получаем число:
7748 = 1111111002
Переводим дробную часть числа.
Получаем число:
08 = 0002
Переводим целую часть числа. Для этого разделим исходный код на группы по 4 разряда.
111111100 = 0001 1111 1100
Затем заменяем каждую группу на код из таблицы.
Двоичная СС шестнадцатеричная СС
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Получаем число:
0001 1111 1100 2 = 1FC16
Поделитесь своими знаниями, ответьте на вопрос:
1.какая клавиатура нажимается после набора последнего данного в операторе read? а) enter б) точка с запятой в) пробел г) ctrl 2. при присваивании изменяется : а) имя переменной б) тип переменной в) значение переменной г) значение константы 3. для вывода результатов в паскале используется оператор а) begin б) readln в) write г) print 4. для вычисления квадратного корня из x используется функция: а) abs (x) b) sqr (x) в) sqrt (x) г) int (x) 5. для генерации случайного целого числа из промежутка [10; 20) необходимо использовать выражение: а) random*20 б) random (20) в) random (10) +10 г) random (10) *2 6. в каком из условных операторов допущена ошибка? а) if b=0 then writeln (`деление невозможно.ё); б) if a в) if a> b then max: =a else max: =b; г) if (a> b) and (b> 0) then c: =a+b; 7.в условном операторе и после then и после else нельзя использовать: а) оператор вывода б)составной оператора в) несколько операторов г) условный оператор
2. в) значение переменной
3. в) write
4. в) sqrt (x)
5. в) random (10) +10
6. б) if a
7. в) несколько операторов
Поясню некоторые ответы:
3. в) Write - это стандартная функция вывода в Pascal
5. в) random(10)+10. Функция random(n) генерирует случайные целые числа диапазоном от [0; n) , то есть random (10) будет в промежутке [0; 10), добавив к выражени +10, мы сдвинем промежуток на +10 = [10;20)