Разработка специализированного программного модуля
Курсовая работа, 07 Апреля 2011, автор: пользователь скрыл имя
Описание работы
Целью курсовой работы является приобретение навыков программирования на языке программирования Си посредством написания программного модуля, реализующего решение системы линейных уравнений различными методами.
Содержание работы
Введение………………………………………………………………………4
Постановка задачи………………………………………………………….5
Математическое описание задачи…………………………………………6
Математическое описание метода Гаусса………………………………6
Математическое описание метода итераций……………………………9
Разработка схемы алгоритма……………………………………………...10
Описание входной и выходной информации……………………………15
Разработка и описание программы……………………………………….16
6 Расчет решения задания и анализ полученных результатов …………..17
Заключение…………………………………………………………………..19
Список использованных источников……………………………………….20
Файлы: 1 файл
Курсовой.doc
— 162.00 Кб (Скачать файл)#include <stdio.h>
#include<stdlib.h>
#include <math.h>
#include
<conio.h>
float vvod(float a[4][5])
{
int i,j;
float t;
printf("Enter kolichestvo peremennih-\n");
scanf("%f",&t);
if(t<2||t>4)
{
printf("vvedeno nepravil'noe kolichestvo peremennih");
getch();
exit(1);
}
else
{
printf("vvedite elementi a\n");
for(i=0;i<t;i++)
{
for(j=0;j<t+1;j++)
{
scanf("%f",&a[i][j]);
}
}
}
return t;
}
void iteracia (float x[4],float x1[4],float a[4][5],float y)
{
int k,i,j;
float e,s,c;
e=pow(10,-5);
do
{
for(i=0;i<y;i++)
{
s=a[i][y];
for(k=0;k<y;k++)
{
s-=a[i][k]*x[k];
}
s=s/a[i][i];
x1[i]=x[i]+s;
c=x1[i]-x[i];
x[i]=x1[i];
}
}
while(fabs(c)>e);
}
void gauss (float x[4],float a[4][5],float y)
{
int i,j,n,l;
float k;
for(i=0;i<y;i++)
{
for(j=(i+1);j<y;j++)
{
k=a[j][i]/a[i][i];
for(l=0;l<y+1;l++)
a[j][l]=a[i][l]*k-a[j][l];
}
}
x[y-1]=a[y-1][y]/a[y-1][y-1];
for(i=(y-2);i>=0;i--)
{
x[i]=a[i][y];
for(j=(y-1);j>=(i+1);j--)
{
x[i]=x[i]-a[i][j]*x[j];
}
x[i]=x[i]/a[i][i];
}
}
void vivod (float x[4],float y)
{
int i;
for(i=0;i<y;i++)
printf ("\nx%i=%f",i+1,x[i]);
}
void main (void)
{
float a[4][5],x[4],x1[4],y;
clrscr();
printf("1 - reshenie sistemi metodom gaussa\n");
printf("2 - reshenie sistemi metodom iteracii\n");
printf("3 - Exit\n");
char ch;
do
{
ch=getch();
printf("Vash vibor - %c,\n\n",ch);
switch(ch){
case '2':{
y=vvod(a);
iteracia(x,x1,a,y);
vivod(x,y);
printf("\nChoise any punkt menu\n");
}break;
case '1':{
y=vvod(a);
gauss(x,a,y);
vivod(x,y);
printf("\nChoise any punkt menu\n");
}break;
}
}
while(ch<'3');
}