Программа нахождения значение уровня Ферми методом последовательных приближений или метод итераций

Автор работы: Пользователь скрыл имя, 21 Января 2012 в 19:56, курсовая работа

Краткое описание

Важной вехой в развитии программирования явилось создание и широкое распространение языка С++. Этот язык, сохранив средства ставшего общепризнанным стандартом для написания системных и прикладных программ языка С (процедурно-ориентированный язык), ввел в практику программирования возможности нового технологического подхода к разработке программного обеспечения, получившего название “объектно-ориентированное программирование”. Внедрение в практику программирования объектно-ориентированной парадигмы дает развитие новых областей информатики, значительное повышение уровня технологичности создаваемых программных средств, сокращение затрат на разработку и сопровождение программ, их повторное использование, вовлечение в процесс расширения интеллектуальных возможностей ЭВМ.

Содержание работы

Введение 3

1 Постановка задачи 4

1.1 Анализ предметной области 4

1.2 Описание метода решения задачи 5

2 Описание программного обеспечения 8

2.1 Входные данные 8

2.2 Выходные данные 9

2.3 Требования к надёжности 10

2.4 Структурная диаграмма 10

2.5 Описание функций 11

3 Описание работы программного модуля 13

3.1 Руководство пользователя 13

3.2 Тестирование 14

Заключение 16

Список использованных источников 17

Приложение А 18

Содержимое работы - 1 файл

Записка.doc

— 1.04 Мб (Скачать файл)

}

      printf("\n");

      if (i==1)

      n=n;

      else

      {

      i=i-i2;

      n=n*pow(10,-i);

      }

      s.e[0]=n;

} 

Текст файла rechenie.h 

void rechenie()

{

int r=0;

float y,x,y1,y2;

if (s.Ef[0]!=0 && s.e[0]!=0)

{

do

{

x=s.Ef[0];

y1=exp((s.Ef[0]-h.Ed[0])/h.KT[0]);

y2=exp((h.Ev[0]-s.Ef[0])/h.KT[0]);

y=s.Ef[0]+0.1*(h.KT[0]*(log(((h.Nd[0]/(1+2*y1))+h.Nv[0]*y2))-log(h.Nc[0]))+h.Ec[0]);

s.Ef[0]=y;

r++;

printf("%d\t%.10f\t%.10f\t%.10f\n",r,x,s.Ef[0],fabs(x-s.Ef[0]));

g[0].kol=r;

g[r-1].na4=x;

g[r-1].kon=s.Ef[0];

}

while (fabs(x-s.Ef[0])>=s.e[0]);

}

else printf("Исходные данные должны быть введены\n\n");

} 

Текст файла restart.h 

void restart()

{

int i;

for (i=0;i<25;i++)

printf("\n");

printf("\nУспешно  очищено\n");

} 

Текст файла struct.h 

struct info

{

      float Ef[10];

      float e[10];

}s;

struct info2

{

      int kol;

      float na4;

      float kon;

}g[1000];

struct info3

{

float Nc[20];

float Nv[20];

float Nd[20];

float Ec[10];

float Ev[10];

float Ed[10];

float KT[10];

float na4[10];

float kon[10];

}h; 

Текст файла zact.h 

void zast()

{

char s;

int i;

printf("\n\nКУРСОВОЙ ПРОЕКТ ПО ДИСЦИПЛИНЕ \n");

printf("\nОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ \n");

printf("\n\nТЕМА: \n");

printf("\nПРОГРАММА, НАХОДЯЩАЯ ЗНАЧЕНИЕ УРОВНЯ ФЕРМИ  \n");

printf("\nМЕТОДОМ ПОСЛЕДОВАТЕЛЬНЫХ ПРИБЛИЖЕНИЙ \n");

printf("\n\n\nРАЗРАБОТАЛ УЧАЩИЙСЯ ГРУППЫ АСОИЗ-101\n");

printf("\nЕРМОЛАЕВ ВИТАЛИЙ ВЛАДИМИРОВИЧ\n");

printf("\n\n\n\nДЛЯ ПРОДОЛЖЕНИЯ НАЖМИТЕ ЛЮБУЮ КЛАВИШУ ....\n");

s=getche();

for (i=0;i<20;i++)

printf("\n");

} 

Текст файла zapic_ich.h 

void zapis_ich()

{

FILE *fp;

char q[10];

char file_name[10];

if (s.Ef[0]!=0 && s.e[0]!=0)

{

printf("Введите  имя файла\n");

scanf("%s",file_name);

strcpy(q,".bin");

strcat(file_name,q);

fp=fopen(file_name,"wb");

if (fp==NULL)

printf("Ошибка  открытия файла!\n");

else

{

printf("Файл успешно открыт и записан c расширением bin\n");

fwrite(&s, sizeof(info),1,fp);

}

fclose(fp);

}

else printf("Исходные данные должны быть введены\n\n");

}

Информация о работе Программа нахождения значение уровня Ферми методом последовательных приближений или метод итераций