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, в основе которой лежит алгоритм структуры с массивами.


 

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

22820. Проголошення ЗУНР та її злука з УНР 30 KB
  у Львові відбулося загальне собранне укр. політичних діячів Галичини і Буковини що обрало керівний орган Національний Рада що заявив про прагнення об'єднати усе західноукр. Национальный Рад увів війська у Львів і в Східну Галицню проголосив 18 листопада 1918 р утворення Западноукрдинской Народної республіки ЗУНР Президент Е. Було зроблене таке: для захисту республіки утворив власну Укр.
22821. Ассортимент товаров. Определения. Характеристика товарного ассортимента. Структура ассортимента. Формирование ассортимента. Ассортиментная политика 21.33 KB
  Одной из важнейших товароведных характеристик товаров является ассортиментная характеристика, которая определяет принципиальные различия между товарами разных видов и наименований. Ассортимент товара - перечень товаров, объединенных по какому-либо признаку и удовлетворяющие потребности человека.
22822. Качество товара, определения. Требования к качеству товара. Классификация свойств и показателей качества. Потребительская ценность продукции: базовая и дополнительная и их влияние на 16.84 KB
  Качество — одна из основополагающих характеристик товара, которая оказывает решающее влияние на создание потребительских предпочтений и формирование конкурентоспособности.
22823. Органічна хімія, конспект лекцій 887 KB
  Значення органічної хімії. Вивчення основних теоретичних положень органічної хімії сприяє формуванню, розширенню і поглибленню фундаментальних, загальнопрофесійних, спеціальних знань, а також активному формуванню предметних і професійних компетенцій, спрямованих на виконання виробничих функцій.
22824. Обязательная сертификация в законе «О техническом регулировании». Ее сущность, объекты, участники. Организация обязательной сертификации 19.03 KB
  Порядок передачи сведений о выданных сертификатах соответствия в единый реестр выданных сертификатов устанавливается федеральным органом исполнительной власти по техническому регулированию...
22825. Государственный контроль и надзор за соблюдением обязательных требований технических регламентов 16.81 KB
  Государственный контроль (надзор) за соблюдением требований технических регламентов осуществляется федеральными органами исполнительной власти, органами исполнительной власти субъектов Российской Федерации
22826. Релаксаційні коливання у схемі з неоновою лампою 86 KB
  Якщо напруга досягне певної величини яка називається напругою запалювання U3 лампа спалахне і струм стрибком досягне скінченої величини I3. Коли напруга спаде до величини U3 лампа не погасне. За другим правилом Кірхгофа для цього кола маємо 1 де Uk напруга на конденсаторі та неоновій лампі яка підключена до нього паралельно.15 видно що напруга на конденсаторі монотонно зростає із швидкістю яка залежить від величини добутку RC.
22827. КАТЕГОРІЙНО-ПОНЯТІЙНИЙ АПАРАТ З БЕЗПЕКИ ЖИТТЄДІЯЛЬНОСТІ, ТАКСОНОМІЯ НЕБЕЗПЕК 92 KB
  Виходячи з сучасних уявлень безпека життєдіяльності є багатогранним обєктом розуміння і сприйняття дійсності, який потребує інтеграції різних стратегій, сфер, аспектів, форм і рівнів пізнання. Складовими цієї галузі є різноманітні науки про безпеку. У всьому світі велика увага приділяється вивченню дисциплін
22828. ВИМІРЮВАННЯ НАПРУЖЕННОСТІ МАГНІТНОГО ПОЛЯ ВЗДОВЖ ОСІ СОЛЕНОЇДА ІНДУКЦІЙНАМ МЕТОДОМ 141 KB
  ВИМІРЮВАННЯ НАПРУЖЕННОСТІ МАГНІТНОГО ПОЛЯ ВЗДОВЖ ОСІ СОЛЕНОЇДА ІНДУКЦІЙНАМ МЕТОДОМ Явище електромагнітної індукції полягає у виникненні е. Напруженість магнітного поля в будьякій точці А що лежить на осі ОО’ соленоїда чисельно дорівнює алгебраїчній сумі напруженостей магнітних полів створених у точці А всіма витками спрямована вздовж осі за правилом свердлика 3 Де n’ – число витків за одиницю довжини соленоїда І величина струму; кути що утворює радіусвектор проведений з точки А до крайніх витків соленоїда мал....