Практические / Пр №3.Циклические программы
.odtПрактическое занятие №3. Циклы.
//Написать программу ввода n чисел, подсчитать сумму чисел
//max и номер максимального значения
//Цикл имеет сл. структуру
// for ( int i=0; i<n ; i++) {операторы;}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,x,s=0,k=0,max=-32000;
printf("Ввести количество вводимых чисел\n");
scanf("%i",&n);
s=0;
for (int i=0;i<n;i++)
{
scanf("%i",&x);
s+=x;
if (x>max){max=x;k=i;}
}
printf("MAX= %i № max %i S= %i \n", max,k,s);
system("pause");
return 0;
}
//Вводим т= 10
//Вводим числа 1 2 3 4 5 6 7 6 5 4
//Ответ max=7 № мax = 7 s=43
/Вычислить сумму ряда s=1+x+x^2/2!+x^3/3!+
// y=exp(x)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
const float eps=0.0001;
float a,b,h;
int i,n,k;
float c,s,x;
printf("Vvesti nathaloe konethnoe kolithestvo znatheniy\n");
scanf("%f%f%i",&a,&b,&n);
h=(b-a)/n;x=a;
for (x=a; x<b; x+=h)
{
s=1;
c=1.;
k=1;
do
{
c=c*x/k;
s+=c;
k++; }
while (c>eps);
printf("%i %f %f %f\n", k,x,s,exp(x) );
}
system("pause");
}
//Написать программу вычисления значения функции y=exp(-x)
//Начальное значение a конечное b и количество значений
//y=1-x+x^2/2!-x^3/3!-.....
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
const float eps=0.00001;
const float h=0.1;
float a,b;
int i,n,k;
float c,s,x;
printf("Vvesti nathaloe konethnoe kolithestvo znatheniy\n");
scanf("%f %f %i",&a,&b,&n);
x=a;
for (i=0; i<=n; i++)
{ x=a+i*h;
s=1.;
c=1.;
k=1;
do
{
c=-c*x/k;
s=s+c;
k++;
}
while (abs(c)<eps);
printf(" %i %f %f %f %i\n", i,x,s,exp(-x),k);
}
system("pause");
}
//Вычислить таблицу для функции заданной суммой ряда s=x+x^3/2/3+
//Вычисление значения y=аrcsin(x)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
float a,b,h,eps,t,s,x,r,u;
int k,l;
printf("Vvesti A B H EPS\n");
scanf("%f%f%f%f",&a,&b,&h,&eps);
printf("__________________________________________\n");
printf(" x F(x) asin(x)\n");
printf("__________________________________________\n");
for (x=a; x<=b; x=x+h)
{
k=1;
l=2;
s=x;
t=x;
do
{
t=t*x*x*k/l;
k=k+2;
l=l+2;
s=s+t/k;
}
while (t>eps);
printf(" %f %f %f\n",x,s,asin(x));
}
system ("pause");
}
//Вычислить корень квадратный по итерационной формуле
//Yn=(Yn-1+x/Yn-1)/2
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
main ()
{
float x,yp,y;
const float eps=0.001;
printf("Vvesti X=\n");
scanf("%f",&x);
y=2;
do
{
yp=y;
y=(yp+x/yp)/2;
} while(fabs(y-yp)>eps);
printf("Koren= %f raven%f \n",x,y);
system("pause");
return 0;
}
//Вводим 2
//Ответ 1.416
//Вычисление кубического корня
//Yn+1=(2*Yn+x/Yn^2)/3
#include <stdio.h>
#include <stdlib.h>
int main()
{
float x,y,y1;
printf("Ввести X= Y= \n");
scanf("%f%f",&x,&y);
for (int i=1;i<10;i++){ y1=(2*y+x/y/y)/3;
y=y1;
printf("y=%f \n",y1);}
printf("Значение Функции равно %f \n",y1);
system("pause");
return 0;
}
//Вводим 10 3
//Ответ 2.154
//Вычисление корня методом Ньютона.
// РЕШЕНИЕ
// Дана функция y=f(x).Y=0. Вычислить корень с точностью до e=0,001.
// На интервале a, b есть корень.
// Представим функцию как x=fi(x)
// 1. X k+1 =fi(Xk)//
// 2. если abs (Xk+1-Xk)<e то выходим из цикла
#include <stdio.h>
#include <stdlib.h>
float f(float x)
{return (x*x-7*x+10);}
float fi(float x)
{return (x*x+10)/7;}
float abc(float x)
{return (x>0)? x:-x;}
int main()
{
float xk,xk1,e;
xk1=5.5;
e=0.001;
do { xk=xk1;
xk1=fi(xk);}
while (abc(xk1-xk)>e);
printf(" \n root= %f \n",xk1);
system("pause");
return 0;
}
// при Xk=1 root=2,000000
//Написать программу для составления таблицы умножения
//с помощью цикла в цикле.
#include <stdio.h>
#include <stdlib.h>
main ()
{
int i,j,k;
for (i=1; i<=10; i++){
k=0;
for (j=1;j<10; j++){
k++;
printf("%2i*%2i=%2i",k,i,k*i);}
printf("\n");}
system("pause");
return 0;
}
// Написать программу используя цикл в цикле.
//Во дворе гуси и кролики у них 64 ноги .Сколько гусей и сколько
//кроликов во дворе.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
for (i=1;i<=64;i++)
for (j=1;j<=64; j++)
if (i*2+4*j==64) printf("Go=%i Kr=%i\n",i,j);
system("pause");
return 0;
}
//2 15
//4 14
//6 13
//8 12
//Найти все двузначные числа, сумму квадратов цифр равна m.
#include <stdio.h>
#include <stdlib.h>
main ()
{
int m,i,j;
printf("Ввести число М \n");
scanf("%i",&m);
for (i=1; i<10 ; i++)
for(j=0;j<10;j++)
if(i*i+j*j==m) printf(" %i \n",i*10+j);
system("pause");
return 0;
}
//100
//68
//86
Домашнее задание.
123. Напишите программу, которая выводит на экран таблицу умножения, например, на 7. Рекомендуемый вид экрана во вре мя выполнения программы приведен ниже. 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63