42707

Изучение массивов в языке ANSI C

Лабораторная работа

Информатика, кибернетика и программирование

Задача лабораторной работы состоит в практическом освоении массивов, совмещения их с функциями ввода и вывода, математическими функциями в одном приложении, написание приложения по индивидуальному варианту.

Русский

2014-03-24

1.8 MB

6 чел.

Лабораторная работа № 4

по дисциплине “Языки программирования”

Массивы

Цель работы

Целью данной лабораторной работы является изучение массивов в языке ANSI C.

Задача лабораторной работы

Задача лабораторной работы состоит в практическом освоении массивов, совмещения их с функциями ввода и вывода, математическими функциями в одном приложении, написание приложения по индивидуальному варианту.

Задание

Модифицировать программу из лабораторной работы № 3 с учетом следующих требований:

- Организовать ввод начального и конечного значений аргумента и  параметра, количество шагов расчета функций G, F, Y;

- Организовать расчет значений функций  G, F, Y с сохранением результатов в массив;

- В полученных массивах найти и вывести наибольший и наименьший элементы;

- Организовать вывод результатов расчета в табличной форме (пары аргумент - значение).

Составим схему программы:

Блок-схема основной программы и дополнительных функций.

Листинг программы

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

const double PI = 3.14159265;

float arr[2][100];

void f_G(float a, float x1,float x2, int k)

{

 float G;

 float gg;

 float x,dx;

 x = x1;

 dx = fabs((x2-x1)/k);

 int i = 0;

 do 

 {

   gg = 25 * a * a + 30 * a * x + 9 * x * x;

   if (gg != 0 )

   {

     G = 9 * (7 * a * a - 19 * a * x + 10 * x * x) / gg;

     arr[1][i] = x;

     arr[2][i] = G;

     i++;

   }

   x = x + dx;

 } while (x<x2);

 for (int j=0;j<i;j++)

 {

   printf("%4f \t %8f\n",arr[1][j],arr[2][j]);

 }

 

 return;

}

void f_F(float a, float x1,float x2, int k)

{

 float F;

 float ff;

 float x,dx;

 x = x1;

 dx = fabs((x2-x1)/k);

 int i = 0;

 do 

 {

  ff = 9 * a * a - 13 * a * x - 10 * x * x;

   

  F = cos(ff);

     arr[1][i] = x;

     arr[2][i] = F;

     i++;

 

   x = x + dx;

 } while (x<x2);

 for (int j=0;j<i;j++)

 {

   printf("%4f \t %8f\n",arr[1][j],arr[2][j]);

 }

 return;

}

void f_Y(float a, float x1,float x2, int k)

{

 float Y;

 float yy;

 float x,dx;

 x = x1;

 dx = fabs((x2-x1)/k);

 int i = 0;

 do 

 {

 yy = -80 * a * a - 46 * a * x + 21 * x * x + 1;

 

 if (yy >= 0)

   {

     Y = logf(yy)/logf(10.0);

     arr[1][i] = x;

     arr[2][i] = Y;

     i++;

   }

   x = x + dx;

 } while (x<x2);

 for (int j=0;j<i;j++)

 {

   printf("%4f \t %8f\n",arr[1][j],arr[2][j]);

 }

 

 

 

 return;

}

void menu()

{

 int ch;

 int k;

 float a,x1,x2;

 do 

 {

   system("cls");

   printf("******MENU*******\n");

   printf("F1. Function G\n");

   printf("F2. Function F\n");

   printf("F3. Function Y\n");

   printf("ESC. Exit...\n");

   ch = _getch();

   switch (ch)

   {

   case 0: { switch (_getch())

           {

   case 59:      //F1

     _flushall();

           

     printf("Enter a:");

     scanf_s("%f",&a);

     _flushall();

     printf("Enter x1:");  //Началное значение интервала для расчета функции G

     scanf_s("%f",&x1);

     _flushall();

     printf("Enter x2:"); //Конечное значение интервала для расчета функции G

     scanf_s("%f",&x2);

  

     do 

     {

       _flushall();

       printf("Enter K (not biger 100):");  //Количество шагов расчета функции G

       scanf_s("%d",&k);

     } while (k<0 || k>100);

     f_G(a,x1,x2,k);

     system("pause");

     break;

   case 60:      //F2

     _flushall();

     

     printf("Enter a:");

     scanf_s("%f",&a);

     _flushall();

     printf("Enter x1:");  //Началное значение интервала для расчета функции F

     scanf_s("%f",&x1);

     _flushall();

     printf("Enter x2:"); //Конечное значение интервала для расчета функции F

     scanf_s("%f",&x2);

  

     do 

     {

       _flushall();

       printf("Enter K (not biger 100):"); //Количество шагов расчета функции F

       scanf_s("%d",&k);

     } while (k<0 || k>100);

     f_F(a,x1,x2,k);

     system("pause");  

     break;                                

   case 61:     //F3

     _flushall();

    

     printf("Enter a:");

     scanf_s("%f",&a);

     _flushall();

     printf("Enter x1:");  //Началное значение интервала для расчета функции Y

     scanf_s("%f",&x1);

     _flushall();

     printf("Enter x2:"); //Конечное значение интервала для расчета функции Y

     scanf_s("%f",&x2);

     do 

     {

       _flushall();

       printf("Enter K (not biger 100):"); //Количество шагов расчета функции Y

       scanf_s("%d",&k);

     } while (k<0 || k>100);

     f_Y(a,x1,x2,k);

     system("pause");

     break;

           }

           break;   

           }

   }

 } while (ch !=27);

 return;                 

}

int main()

{

 menu();

 system("pause");

 return 0;

}

Тестирование работы программы

Функция f_G


Функция f_F

Функция f_Y

Выводы по работе

В ходе выполнения лабораторной работы я изучил особенности  написания  программы  на языке ANSI C, в основе которой лежит алгоритм структуры с массивами.


 

А также другие работы, которые могут Вас заинтересовать

76484. Признание брачного договора недействительным 18.76 KB
  Брачный договор может быть признан судом недействительным в случае: признания брака недействительным; если условия договора ставят одного из супругов в крайне неблагоприятное положение; по основаниям предусмотренным ст. На признание брачного договора действительным или недействительным распространяются соответствующие нормы ГК РФ о действительности и недействительности сделок. Брачный договор может быть признан недействительным по иску супруга чьи права и законные интересы были нарушены в результате заключения договора: в состоянии...
76485. Обращение взыскание на имущество супругов. Гарантии прав кредиторов при заключении брачного договора 18.08 KB
  Таким имуществом в частности являются движимые и недвижимые вещи ценные бумаги паи доли в капитале внесенные в кредитные или иные коммерческие организации и любое другое нажитое в период брака имущество независимо от того на имя кого из супругов оно приобретено. 256 ГК РФ по обязательствам одного из супругов взыскание может быть обращено на его долю в общем имуществе супругов которая причиталась бы этому супругу при разделе имущества. 39 СК РФ доли супругов при разделе общего имущества признаются равными если иное не предусмотрено...
76486. Основания, порождающие родительские правоотношения 15.58 KB
  Законом предусмотрена государственная регистрация рождения ребенка в органах записи актов гражданского состояния по месту рождения ребенка или по месту жительства его родителей одного из них. Происхождение ребенка от матери устанавливается не медицинским учреждением а органом записи актов гражданского состояния на основании справки или иного документа выдаваемого тем медицинским учреждением в стенах которого родился ребенок. Государственная регистрация рождения ребенка производится по месту жительства родителей или одного из них. Сведения...
76487. Установление происхождения ребенка, родившегося в браке 14.71 KB
  Лишь после регистрации рождения происхождение ребенка становится юридическим фактом и может порождать правовые последствия. Состояние матери ребенка в зарегистрированном браке дает основание полагать что отцом ребенка является супруг матери. При государственной регистрации рождения ребенка предъявляется документ являющийся основанием для внесения сведений об отце в запись акта о регистрации рождения.
76488. Регистрация рождения ребенка, рожденного вне брака 14.59 KB
  Таким образом с формальноюридической точки зрения совместная жизнь в зарегистрированном браке и в гражданском браке две большие разницы. Что же касается темы отцы и дети то здесь закон преследуя интересы несовершеннолетних устанавливает принцип равенства прав детей рожденных в браке и вне брака. Статья 53 СК РФ определяет что дети родившиеся у лиц не состоящих между собой в браке имеют по отношению к своим родителям и их родственникам такие же права и обязанности как и дети рожденные в браке.
76489. Установление отцовства и факта признания отцовства 17.18 KB
  Если же предполагаемый отец умер то речь идет уже об установлении факта отцовства или факта признания отцовства. Если при рассмотрении заявления в суде будет установлено что лицо при жизни признавало своё отцовство материнство в отношении ребенка то суд удовлетворяет заявление и признает факт отцовства или факт признания отцовства. Порядок судебного установления отцовства При наличии какого-либо спора установление отцовства осуществляется в судебном порядке по иску заинтересованного лица.
76490. Оспаривание отцовства и (или) материнства 15.82 KB
  Запись акта о рождении ребенка с указанием сведений о его родителях является доказательством происхождения ребенка от конкретных лиц: женщины и мужчины. Например в силу действующей в семейном праве презумпции отцом ребенка был записан муж его матери однако фактическим отцом он не является поскольку в момент зачатия ребенка проходил военную службу в другой местности. Или в случае подмены ребенка в роддоме когда ни супруг ни супруга зарегистрированные в качестве родителей ребенка не являются его биологическими родителями. При...
76491. Личные права несовершеннолетнего ребенка 14 KB
  К ним относятся: право ребенка жить и воспитываться в семье п. 54 СК РФ; право ребенка на общение с родителями дедушкой бабушкой братьями сестрами и другими родственниками ст. 55 СК РФ; право ребенка на защиту своих прав и законных интересов ст.
76492. Имущественные права несовершеннолетнего ребенка 21 KB
  Создание условий жизни необходимых для развития ребенка обеспечивается главным образом родителями несущими основную финансовую ответственность за его достойное содержание. Статья 60 СК наделяет ребенка следующими имущественными правами: а правом на получение содержания от своих родителей и других членов семьи то есть совершеннолетних трудоспособных братьев и сестер дедушки бабушки; б правом собственности на полученные им доходы имущество полученное им в дар или в порядке наследования и на любое другое имущество приобретенное на...