42707

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

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

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

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

Русский

2014-03-24

1.8 MB

7 чел.

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


 

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

79963. Верховный Суд Украины 167 KB
  Верховный Суд Украины Учебные вопросы: Место Верховного Суда Украины в судебной системе Украины. Полномочия Верховного Суда Украины. Структура и состав Верховного суда Украины. Место Верховного Суда Украины в судебной системе Украины закреплено на конституционном уровне: Высшим судебным органом в системе судов общей юрисдикции является Верховный Суд Украины п.
79964. GALS/ИПИ ТЕХНОЛОГИИ – ЭФФЕКТИВНЫЙ ПУТЬ ПОВЫШЕНИЯ КОНКУРЕНТОСПОСОБНОСТИ ВЫПУСКАЕМОЙ ПРОДУКЦИИ 153 KB
  В настоящее время на мировом рынке наукоемких промышленных изделий отчетливо наблюдаются три основные тенденции: повышение сложности и ресурсоемкости изделий повышение конкуренции на рынке и развитие кооперации между участниками жизненного цикла ЖЦ изделия в том числе создание виртуальных предприятий. Основной проблемой стоящей сейчас перед производителями является повышение конкурентоспособности выпускаемых изделий добиться которой можно за счет следующих факторов: повышения степени удовлетворения требований заказчика сокращения...
79965. ОСНОВНЫЕ ПОЛОЖЕНИЯ КОНЦЕПЦИИ САLS/ИПИ 178.5 KB
  ОСНОВНЫЕ ПОЛОЖЕНИЯ КОНЦЕПЦИИ САLS ИПИ 2. Стратегия и задачи концепции САLS ИПИ Современная эпоха развития и интеграции производственной деятельности во всем мире проходит под эгидой САLS ИПИ новой концепции развития производственной и коммерческой информатики. САLS ИПИ это глобальная стратегия повышения эффективности бизнеспроцессов выполняемых в ходе ЖЦ изделий за счет информационной интеграции и преемственнос ги информации порождаемой на всех этапах ЖЦ. Средствами реализации данной стратегии являются САLS ИПИ технологии в основе...
79966. ИНФОРМАЦИОННАЯ СРЕДА ЖИЗНЕННОГО ЦИКЛА ИЗДЕЛИЙ 248.5 KB
  Процессы и этапы жизненного цикла изделий Одним из направлений повышения эффективности промышленного сектора экономики является применение современных информационных технологий для обеспечения процессов протекающих в ходе всего ЖЦ продукции и ее компонентов. Понятие ЖЦ изделий для САLS ИПИконцепции является фундаментальным. Эти процессы осуществляются от момента выявления потребностей общества в определенных изделиях до удовлетворения этих потребностей и утилизации изделий. Рассмотрим в самом...
79968. ОСНОВНЫЕ ДЕТАЛИ И СБОРОЧНЫЕ ЕДИНИЦЫ МАШИН И ОБОРУДОВАНИЯ 270 KB
  Механическими передачами или просто передачами называют механизмы для передачи энергии от машины двигателя к машинеорудию как правило с преобразованием скоростей моментов а иногда с преобразованием видов движения. Передачи между машинойдвигателем и машинойорудием вводят по следующим причинам: скорость исполнительного органа в процессе работы машиныорудия необходимо изменять например у автомобиля грузоподъемного крана токарного станка а скорость машиныдвигателя чаще постоянна например у электродвигателей; нередко от...
79969. Основні завдання, які необхідно вирішувати в технологічній частині дипломної роботи магістра і бакалавра 369 KB
  Студент вивчає виробничий і технологічний процеси цеху заводу для чого використовує технологічні регламенти виробництва деталей будівельних матеріалів хімічних продуктів маршрутні і операційні карти обробки деталей. При описі технологічної частини проектів виконуваних за даними машинобудівних підприємств розробка технологічного заходу супроводжується необхідними розрахунками складанням маршрутних карт поопераційних карт визначенням штучного часу обробки заготовок деталей штучнокалькуляційного часу. Методичні рекомендації до...
79970. Общие принципы построения технологий 146.5 KB
  Общие принципы построения технологий Введение Обычно под производством понимают процессы создания чеголибо материального или духовного для удовлетворения потребностей. Общим для технологий всех видов есть то что они являются продуктом умственной деятельности человека. Неоценимо значение технологий так как им принадлежит определяющая роль в обеспечении качества и конкурентоспособности продукции они являются важнейшим фактором в развитии общества. Проведение глубоких качественных преобразований в экономике возможно лишь на базе современных...
79971. Технологические системы и современное производство 145.5 KB
  Технологические системы и современное производство Понятие ldquo;технологическая системаrdquo; Следствием НТП является интенсификация всех сфер производства и формирование высоко эффективных технологических систем на основе новой техники. Такие системы не изолированы они включают также людей участвующих в процессе взаимодействуют с окружающей средой гео био атмосферой и другими внешними системами. Отношение между элементами определяется целью то есть результатом действия системы в виде объекта предмета энергии информации...