Практические / Пр №1.Линейные программы
.odtНаписать программу вычисления длины окружности,площади круга, площади сферы,
объем шара радиуса r.
1. входные данные - r.
2. выходные данные - d- длина окружности;
s- площадь круга;
ss-площадь сферы;
v- объем шара .
#include <stdio.h>
#include <stdlib.h> Директивы препроцессора
# define pi 3.1415 Определение константы пи
int main() имя заголовка главной функции вход в программу
{ начало тела программы
float r; определения входной величины радиуса
float d,s,ss,v; определение выходных величин
printf(" Добро пожаловать! Введите радиус r=\n"); печать величины которую надо ввести
scanf("%f",&r); ввод радиуса
d= 2*pi*r; вычисление длины окружности
printf("Длина окружности радиуса r = %f \n",d);печать длины окружности
s=pi*r*r; вычисление площади круга
printf(" Площадь круга радиуса r= %f \n",s);печать площади круга
ss=4*s; вычисление площади сферы
printf(" Площадь сферы радиуса r= %f \n",ss);печать площади сферы
v= ss*r/3; вычисление объема шара
printf(" Объeм шара радиуса r=%f \n",v);печать объема шара
system ("pause"); остановить машину и посмотреть результаты расчетов
return(0); выход из программы
} конец тела программы
Результаты работы программы
Добро пожаловать! Введите радиус r=
1
Длина окружности радиуса r = 6.283
Площадь круга радиуса r= 3.14
Площадь сферы радиуса r= 12.566
Объем шара радиуса r= 4.158
Таким образом, линейная программа представляет собой точку входа в программу
задания констант, описания данных, ввода данных, последовательности операторов,
выполняемых один раз, вывода результатов и выхода из программы.
Написать программу вычисления площади S треугольника по его сторонам a,b,c.
#include <stdio.h> подключение библиотеки ввода вывода
#include <stdlib.h> подключение библиотеки общих программ
#include <math.h> подключение математических программ
int main() заголовок программы
{ начало тела программы
float a,b,c,p,s; описание данных
printf("Ввести длины сторон треугольника a,b,c\n"); приглашение к вводу данных
scanf("%f %f %f\n", &a,&b,&c); ввод данных
p=(a+b+c)/2; вычисление полупериметра
s=sqrt(p*(p-a)*(p-b)*(p-c)); вычисление площади треугольника
printf("S= %f \n",s); вывод результата
system("pause"); остановка машины
return 0; выход из программы
} конец программы
Таким образом структура простейшей линейной программы имеет следующий вид:
Директивы препроцессора # include <>
Заголовок главной программы int main()
Начало тела программы {
Описание данных int a,b,c;
Ввод данных scanf(" % ",a,b,c);
* s=a;
* a=b;
Операторы b=a;
*
Вывод данных printf(" %i % i %i ",a,b,c)
Остановка машины system ("pause");
Выход из программы return 0;
Конец тела программы }
/ Структуру простейшей программы рассмотрим на примере диалога машины со студентом
#include <stdio.h>
#include <stdlib.h> // директивы препроцессора
int main() //заголовок главной программы
{ //начало главной программы
int k, str[4]; // описание переменной
printf(" KAK WAS ZOVUT? \n");// вывод на экран вопроса
scanf("%s",str); // ввод имени
printf(" ZDRAVSTVUY, %s \n",str); // вывод на экран приветствия
printf("SKOLKO TEBE LET?\n"); // ввывод на экран вопроса о вашем возросте
scanf("%i",&k); // ввод вашего возраста
printf("TY STUDENT KAKOGO KURSA?\n" ); //вывод на экран вопроса о курсе
scanf("%i",&k); // ввод курса
printf("KAKAY U TEBA OZENKA PO PROGRAMMIROVANIY ?\n");// выводна экран оценку по прогр.
scanf("%i",&k); // ввод оценки
printf("Молодец!\n");
printf("Так держать!\n");
printf("Россия вперед!\n");
system("pause"); //Останов машины
return(0); //выход из программы
} //конец программы
//Как Вас зовут?
// Вася
// 1
//Здравствуй, Вася!
//Сколько тебе лет?
// 17
//Ты студент какого курса?
// 1
//Какая у тебя оценка по программированию?
// 5
//Молодец!
//Так держать!
//Россия вперед!
// Для продолжения нажмите 0
// Написать самостоятельно программу диалога машины с пользователем
// Введите пароль - год Вашего рождения
// Пароль неверен повторите !
//Дана длина окружности с
//Вычислить площадь круга этой окружности
// РЕШЕНИЕ
//радиус равен r=c/pi/2;
// площадь равна s=pi*r*r;
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float c,r,s;
const float pi=3.1415;
printf("Vvesti dlinu okrugnosti\n");
scanf("%f",&c);
r=c/2/pi;
s= pi*pow(r,2);
printf("R=%f C=%f S=%f \n",r,c,s);
system("pause");
return 0;
}
// Вводим c=50
//r=7,95 c= 50 s=198,95
//Написать программу вычисления длин концентрических окруж-
//ностей. Задана площадь большого круга, а малого в 4 раза меньше.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
float c,s,r,c1,s1,r1,t;
const float pi=3.1415;
printf("Vvesti ploshad kruga");
scanf("%f",&s);
r=sqrt(s/pi);
s1=s/4;
r1=sqrt(s1/pi);
c=2.*pi*r;
c1=2.*pi*r1;
printf("R=%f C=%f S=%f\n",r,c,s);
printf("R1=%f C1=%f S1=%f\n",r1,c1,s1);
system("pause");
return 0;
}
// r=5,64 c= 35,45 s=100
// r=2.82 c= 17,72 s=25
// Дана длина окружности наибольшего сечения с
//Вычислить площадь наибольшего сечения, площадь сферы, объем шара.
// РЕШЕНИЕ
// r=c/2/pi s=pi*r^2 ss= 4*s v 4*pi*r^3/3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define pi 3.1415
int main()
{
float c,r,s,ss,v;
printf("Vvesti dlinu okrugnosti \n");
scanf("%f", &c);
r=c/pi/2;
s=pi*r*r;
ss=4*s;
v=ss*r/3;
printf("R= %f S= %f SS= %f V= %f \n",r,s,ss,v);
system("pause");
return 0;
}
// 6.28
// R= 0.999 s= 3.1485 SS=12.554 V=4.18
//Вычислить площадь четырехугольника по координатам вершин углов
// A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4);
// РЕШЕНИЕ
// a= V (x3-x2)^2+ (y3-y2)^2
// b= V (x2-x1)^2+ (y2-y1)^2
// c= V (x3-x1)^2+ (y3-y1)^2
// p=(a+b+c)/2 s= V p*(p-a)*p-b)*(p-c)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float x1,y1,x2,y2,x3,y3,x4,y4;
float a,b,c,d,e;
float p,s,s1 ;
printf("Vvesti kopdinaty wershin treugolnika \n");
scanf("%f%f%f%f%f%f%f%f", &x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
a=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
b=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
c=sqrt(pow(x3-x1,2)+pow(y3-y1,2));
d=sqrt(pow(x2-x4,2)+pow(y2-y4,2));
e=sqrt(pow(x3-x3,2)+pow(y4-y3,2));
p=(a+b+c)/2;
s= sqrt(p*(p-a)*(p-b)*(p-c));
printf("S= %f \n",s);
p=(a+d+e)/2;
s1= sqrt(p*(p-a)*(p-d)*(p-e));
printf("S1= %f \n",s1);
printf("S+S1= %f \n",s+s1);
system("pause");
return 0;
}
// 0 0 0 3 4 0
// s=6
Вычислить площадь четырехугольника по координатам вершин углов
// A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4);
// РЕШЕНИЕ
// a= V (x3-x2)^2+ (y3-y2)^2
// b= V (x2-x1)^2+ (y2-y1)^2
// c= V (x3-x1)^2+ (y3-y1)^2
// p=(a+b+c)/2 s= V p*(p-a)*p-b)*(p-c)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float x1,y1,x2,y2,x3,y3,x4,y4;
float a,b,c,d,e;
float p,s,s1 ;
printf("Vvesti kopdinaty wershin treugolnika \n");
scanf("%f%f%f%f%f%f%f%f", &x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
a=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
b=sqrt(pow(x2-x1,2)+pow(y2-y1,2));
c=sqrt(pow(x3-x1,2)+pow(y3-y1,2));
d=sqrt(pow(x2-x4,2)+pow(y2-y4,2));
e=sqrt(pow(x3-x3,2)+pow(y4-y3,2));
p=(a+b+c)/2;
s= sqrt(p*(p-a)*(p-b)*(p-c));
printf("S= %f \n",s);
p=(a+d+e)/2;
s1= sqrt(p*(p-a)*(p-d)*(p-e));
printf("S1= %f \n",s1);
printf("S+S1= %f \n",s+s1);
system("pause");
return 0;
}
// 0 0 0 3 4 0
// s=6
//Написать программу вычисления корней квадратного уравнения.
// a*x^2 + b*x + c=0
//x1=-b/2/a+ V b^2-4*a*c /2/a
//x2=-b/2/a- V b^2-4*a*c /2/a
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
float a,b,c,x1,x2,r,s;
printf("Vvesti koefizienti yravneniya");
scanf("%f%f%f",&a,&b,&c);
r=-b/a/2;
s=sqrt(b*b-4*a*c)/a/2 ;
x1=r+s;
x2=r-s;
printf("X1= %f X2 = %f \n",x1,x2);
system("pause");
return 0;
}
// 1 -7 10
// x1= 5 x2=2
//Написать программу вычисления суммы членов арифметической прогрессии.
// 0 2 4 6 8 10 12 14 16 18 20
// РЕШЕНИЕ
// S=(2*a1+ (n-1)*d)*n/2
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
float a,d,s;
int n;
printf("Vvesti a d n ");
scanf("%f%f%i",&a,&d,&n);
s=(2*a+(n-1)*d)*n/2;
printf("S= %f \n",s);
system("pause");
return 0;
}
// 0 2 11
// S=110
//Написать программу вычисления суммы членов геометрической прогрессии.
// 2 4 8 16 32 64
// РЕШЕНИЕ
// S=a*(q^n-1)/(q-1)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
float a,q,s;
int n;
printf("Vvesti a q n \n");
scanf("%f%f%i",&a,&q,&n);
s= a*(pow(q,n)-1)/(q-1);
printf("S= %f \n",s);
system("pause");
return 0;
}
// 1 2 110
// S=1023
// Дан цилиндр с радиусом основания r и высотой 2r.
//Написать программу вычисления объема вписанного,описанного шаров
//и вписанного конуса
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
float r,h,vo,vv,vk,vz;
const float pi=3.1415;
printf("Vvesti radius zilindra");
scanf("%f",&r);
float r3;
r3=pow(r,3);
vz= 2*pi*r3;
vk=vz/3;
vv=4*r3/3;
vo=pi*sqrt(3)/2*r3;
printf("R=%f Vzil= %f Vkon=%f Vvpis=%f Vopis=%f \n",r,vz,vk,vv,vo);
system("pause");
return 0;
}
// r=1
// r=1 vz= 6,28 vk= 2.09 vvp= 1.33 vop=2.72
Домашнее задание.
1. Написать программу вычисления площади четырехугольники по координатам вершин
А(х1,у1), В(х2,у2), С(х3,у3),D(x4,Y4).
2. Дома написать программу диалога машины со студентом
Какой был у Вас общий бал по ЕГЭ?
Какой был проходной бал?
Какую школу вы закончили? номер школы.