Спецификация программы

Автор работы: Пользователь скрыл имя, 05 Декабря 2010 в 09:49, Не определен

Описание работы

зачетная работа

Файлы: 1 файл

ОТчет 1 семестр принято!!!!!!!!!!!!!!.doc

— 322.50 Кб (Скачать файл)

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

Государственное образовательное учреждение

высшего профессионального образования

ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Факультет прикладной математики и телекоммуникаций

КАФЕДРА РЭС 
 
 
 
 
 
 
 
 

Отчёт по дисциплине «Информатика»

Индивидуальное  задание № 205

ТПЖА.12120-01 90 01-1 
 
 
 
 
 
 
 
 
 
 
 
 
 

Разработал:  студент гр. ПС-11  ____________  /Скопина К.Э./

                                                                 (подпись)

Проверил:  ст. преподаватель  ____________  /Наумович Т.В./

                                                                 (подпись) 
 

                                                      Дата: «___»  _____________

      
 
 

Киров 2008 
 

СОДЕРЖАНИЕ

1.Текст  задания………………………………………………………………….3

2 Спецификация программы………………………………………….............4

3 Текст программы………………………………………………………..........5

4 Схемы алгоритмов……………………………………………………............9

5 Реализация программы……………………………………………………..17

 

1 Текст задания

      Даны  натуральное число N, действительные числа а[1], ... ,а[n]. Получить максимальный элемент (а[1], ... ,а[n]). Вычислить:

     Данная  задача может быть сформулирована, как последовательность действий:

    1. Ввести в компьютер, например, с экрана дисплея числовые значения N, равное количеству элементов одномерного массива;
    2. ввести в компьютер с экрана дисплея числовые значения элементов массива a[1], a[2]…a[n];
    3. найти максимальный элемент среди элементов массива;
    4. вывести обозначение максимального число max с его числовым значениям;
    5. посчитать значение выражения F по формуле;
    6. вывести обозначение выражения F с его числовым значением;

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

  Предусмотреть вывод на экран матрицы, значение максимального элемента, значение функции F, а также проверку данных на соответствие диапазону, предусматриваемому для данного типа данных.

Входные данные:

N может принимать значения от 1 до 100.

а[N] может принимать значения от -3,4*e38 до 3,4*e38.

Выходные  данные:

Размерность массива N = 7

Заданный  массив:

5 -3 2 18 8 7 -14

Результат: Max=18  F=671

 

2 Спецификация программы

     При запуске программы пользователю предлагается ввести числа N – размерность массива и числа a1, … , an  – элементы массива a[n]. В программе ввода числа предусмотрен контроль от ввода некорректных данных. Далее предусмотрен эхо-контроль (печать введенного числа). Далее программа производит выводит сформированный массив. Затем выполняет поиск максимального элемента массива, и выводит на экран значение этого элемента, затем происходит вычисление функции и выводит ее значение на экран.

     После получения результата работы программы  пользователю выдается сообщение: «Для продолжения нажмите клавишу 'Y'». Если пользователь желает продолжить работу необходимо нажать клавишу ‘Y’ и выполнение программы начнется заново. Прервать работу программы можно нажав клавишу ‘ESC’.

     Конструктивно программа выполнена в виде четырех вызываемых функций и одной основной функции main(), которая осуществляет управление вызываемыми функциями и поддерживает диалог с пользователем.

     Вызываемые  функции:

int int_shild();                             Функция защиты от некорректного

ввода

double protect(double maxnum,double minnum); Функция защиты от некорректного

 ввода

void func1(int n, double *s);       Функция выполнения условия задачи

void massiv();                                             Функция ввода массива

      Входные данные программы приведены в  таблице 1.

     Выходные  данные программы приведены в таблице 2.

     Таблица 1-Входные данные

const int N=100;

double *a;

int n,F=0,nmax=0;

char ch;

тип Идентификатор Диапазон назначение
unsigned char ch 0 … 255 Ответ на запрос продолжения программы
unsigned int N 0 … 100 Размерность массива
double a[n] -3.4*e38 … 3.4*e38 Элементы массива
 

    Таблица 2-Выходные данные  

тип Идентификатор Диапазон назначение
unsigned int a[nmax] -3.4*e38 … 3.4*e38 Максимальный  элемент массива
unsigned int F 0 … 3.4*e38 Значение функции(см.текст  задания)

 

3 Текст программы

 

     #include "stdafx.h"

     #include <stdio.h>

     #include <math.h>

     #include <conio.h>

     #include <stdlib.h>

     #include <iostream>

     #include <windows.h>

     #include <float.h>

     using namespace std;

     int int_shild();

     double protect(double maxnum,double minnum);

     void func1(int n, double *s);

     void massiv();

      char buf[1024];

     char * r(char * txt)

     {

      CharToOemA(txt, buf);

      return buf;

     }

     int main()

     {

       char ch;

     printf("\n---------------------ZADANIE -------------------------\n");

                 printf("\nDany natural'noe chislo N, deystvitel'nye chisla");

                 printf("\n a[1], ... , a[n]. Poluchit' max (a[1],...,a[n]) ");

                 printf("\n          Vi4islit' (a[1]^2+...+a[n]^2)");

                 printf("\n");

                 printf("------------------------------------------------------");

     printf(r("\nНажмите  любую клавишу...\n"));

     _getch();

       do

     { 

     massiv();

     printf ("\n");

     printf (r("Хотите: Y-продолжить ; N-завершить???"));

           do

           {

           ch=_getch();

           if( (ch=='y')||(ch=='n') )

           printf("%c\n",ch);

           }

           while (ch!='y' && ch!='Y' && ch!='n' && ch!='N');

           }

           while (ch!='n' && ch!='N'); 
 
 
 

       printf("\n");

       printf("                       <<<Rabota programmy zavershena>>>");

       printf("\n-------------------------------------------------------");

       printf("\n                Rabotu vypolnila studentka gruppy PS-11");

       printf("\n                                       Skopina Kristina");

       printf("\n");

       printf(r("\nНажмите любую клавишу...\n"));

     _getch();

           return 0;

     }

     //******************************************************************

     //функция  матрицы 

     //******************************************************************

     void func1(int n, double *s)

     {int nmax=0;

     double F=0; 

           for (int i = 0; i <n; i++)       //нахождение максимального элемента

           {

                 if ((s[i]) > (s[nmax])) s[nmax]= s[i];         

                 F+=(s[i] * s[i]);        //функция 

           }

           printf("\n\nznachenie max elementa = ");

           printf("%5.2f",s[nmax]);

           printf("\n\nvi4islenie zna4enija funkcii");

           printf("\n F = " );

           printf("%20.6lg",F); 
 

     }

     void massiv()

     {int n=0,i=0,j=0;

     double *s;

     s=(double*)realloc(0,sizeof(double*)*n);

     printf(r("\nВведите  размерность массива(от 0 до 100): "));

     n=int_shild();

     printf(r("\nВведите значения массива(от %lg до %lg :\n"),DBL_MIN, DBL_MAX );  //Ввод матрицы

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

                  

           {printf("a[%d]= ",i);

                   s[i]=protect(DBL_MAX,DBL_MIN);

                   printf("\n");} 
 
 
 

     printf(r("\nИсходный  массив:\n")); 

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

                 {printf("a[%d]=%5.3lg\t",i,s[i]);//Вывод  матрицы

               }

           func1(n,s);

     }

     //*****************************************************************

Информация о работе Спецификация программы