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


 

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

67885. АДМИНИСТРАТИВНО-ПРАВОВОЙ РЕЖИМ ПРЕДПРИНИМАТЕЛЬСКОЙ ДЕЯТЕЛЬНОСТИ В ОСОБЫХ ЭКОНОМИЧЕСКИХ ЗОНАХ 72 KB
  Свободные экономические зоны на территории Российской Федерации начали создаваться в конце 80х годов XX в. Они рассматривались как вспомогательный институт государственной экономической политики и как способ стимулирования межгосударственных экономических отношений.
67886. ОСНОВНЫЕ НАПРАВЛЕНИЯ СОВЕРШЕНСТВОВАНИЯ ЗАКОНОДАТЕЛЬСТВА, РЕГУЛИРУЮЩЕГО ПОРЯДОК РАЗРЕШЕНИЯ ЖАЛОБ НА ДЕЙСТВИЯ ТАМОЖЕННЫХ ОРГАНОВ 73 KB
  В настоящее время началась реализация новой Концепции развития таможенных органов Российской Федерации на 2006-2010 гг. Данная концепция является основой разработки программ и планов развития таможенных органов Российской Федерации на среднесрочную и долгосрочную перспективу.
67887. РАЗВИТИЕ ЛИЦЕНЗИОННОГО ЗАКОНОДАТЕЛЬСТВА НА ФЕДЕРАЛЬНОМ И РЕГИОНАЛЬНОМ УРОВНЯХ 91.5 KB
  О лицензировании отдельных видов деятельности в соответствии с которой к лицензируемым видам деятельности относятся те ведение которых может повлечь за собой нанесение ущерба правам законным интересам здоровью граждан обороне и безопасности государства культурному наследию народов...
67888. РОЛЬ КОНСТИТУЦИИ РОССИЙСКОЙ ФЕДЕРАЦИИ В ПРОЦЕССЕ ФОРМИРОВАНИЯ И РЕАЛИЗАЦИИ ЗАДАЧ И ПРИНЦИПОВ УГОЛОВНОГО ПРАВА 125.5 KB
  Акты действующие в сфере гражданского пенсионного уголовного и других отраслей законодательства подвергаются Конституционным Судом интенсивной ревизии с целью прекращения действия юридических норм нарушающих Конституцию РФ. № 113ФЗ О присяжных заседателях федеральных судов общей юрисдикции...
67889. РОЛЬ ГЕОПОЛИТИКИ В МЕЖДУНАРОДНЫХ ОТНОШЕНИЯХ 73.5 KB
  В научной или научно-популярной литературе по истории нередко можно встретить утверждение о том что выгодное географическое положение позволило такому-то государству добиться того-то и данный фактор весьма значимый для исторического развития государства. Привлекательность этих незначительных территорий...
67890. НЕКОТОРЫЕ ВОПРОСЫ ПРИНЯТИЯ ЗАЯВЛЕНИЙ О ПРЕСТУПЛЕНИЯХ, ПРЕСЛЕДУЕМЫХ В ЧАСТНОМ ПОРЯДКЕ 47.5 KB
  Согласно статье 20 УПК РФ уголовное преследование осуществляется в публичном частно-публичном и частном порядке. Порядок возбуждения уголовных дел публичного и частно-публичного обвинения закреплен в главе 20 УПК РФ а возбуждение уголовных дел частного обвинения регламентируется статьей 318 УПК РФ.
67891. ОСОБЕННОСТИ ЮРИДИЧЕСКОЙ ОТВЕТСТВЕННОСТИ КРЕДИТНЫХ ОРГАНИЗАЦИЙ ЗА НЕПРЕДСТАВЛЕНИЕ НАЛОГОВЫМ ОРГАНАМ СВЕДЕНИЙ О ФИНАНСОВО-ХОЗЯЙСТВЕННОЙ ДЕЯТЕЛЬНОСТИ КЛИЕНТОВ 51 KB
  В частности в своей жалобе один из московских банков оспаривал конституционность следующих законоположений: 1 абзаца первого пункта 3 статьи 7 Закона Российской Федерации от 21 марта 1991 г. О налоговых органах Российской Федерации согласно которому налоговые органы наделены правом получать от предприятий...
67892. НЕКОТОРЫЕ АСПЕКТЫ ИСТОРИИ ВОЗНИКНОВЕНИЯ ЧАСТНОГО ПРАВА В РОССИИ 59 KB
  Изменение политического курса государства переход от плановой экономики к рыночной отразились на правовой системе России. Ныне многие ученые начинают склоняться к мысли что в основу российской правовой системы может быть положено деление права на публичное и частное.
67893. РОЛЬ ГРАЖДАНСКО-ПРАВОВЫХ ОГРАНИЧЕНИЙ В ОБЕСПЕЧЕНИИ БЕЗОПАСНОСТИ ГОСУДАРСТВЕННОЙ СОБСТВЕННОСТИ 49.5 KB
  В соответствии со статьей 1 Гражданского кодекса Российской Федерации принятой на основании и в развитие статьи 55 Конституции Российской Федерации гражданские права могут быть ограничены на основании федерального закона и только в той мере в какой это необходимо в целях защиты основ конституционного...