Программирование на С++

  1. Дано n (n≤100) вещественных чисел. Определить, образуют ли они возрастающую последовательность.

Чтобы массив был строго возрастающим каждый последующий элемент должен быть больше предыдущего. Чтобы это проверить организуем цикл от первого до предпоследнего элемента. В цикле будем сравнивать текущий элемент массива с последующим. Если встречается ситуация при которой следующий элемент меньше или равен текущему элементу то делаем вывод что массив не строго возрастающий. Если такой ситуации не произошло, делаем вывод, что массив строго возрастающий.

      Число элементов массива 5.

Y[1]=1.1

Y[2]=2.8

Y[3]=4.5

Y[4]=6.7

Y[5]=6.75

Ответ: Строго возрастающий массив

2.Проверить, правильн ли в заданном тексте расставлены круглые скобки ( т.е. находится ли справа от каждой открывающей скобки соответствующая ей закрывающая скобка, а слева от каждой закрывающей - соответствующая ей закрывающая). Ответ – «ДА» или «НЕТ»

1.     Вводим:

‘При этом (как и ранее) используется позначные модели рассматриваемых последовательностей и аналог формулы (9) ’

Ответ:

Верно

3. Задан массив из 15 действительных чисел. Упорядочить его по неубыванию.

Вводим                                                    Ответ

Y[1]=5                                                  Y[1]=0

Y[2]=34                                                Y[2]=1

 Y[3]=8                                                 Y[3]=2

Y[4]=21                                                Y[4]=2

Y[5]=0                                                  Y[5]=3

Y[6]=8                                                  Y[6]=4

Y[7]=3                                                  Y[7]=5

Y[8]=2                                                  Y[8]=6

Y[9]=1                                                  Y[9]=8

Y[10]=6                                                Y[10]=8

Y[11]=4                                                Y[11]=21

Y[12]=2                                                Y[12]=23

Y[13]= 43                                             Y[13]= 34

Y[14]= 23                                             Y[14]= 43

Y[15]= 45                                             Y[15]= 45

Описание переменных и исходный текст к 1-му примеру

#include <stdio.h>                                                           

#include <stdlib.h>                                                          

#define M 100                      //максимальная длина массива              

main()                                                                       

{                                                                            

  void    inpdim(float a[],int *n);//Процедура ввод  массива                  

  float   y[M];                    //Массив                                  

  int     n;                       //длина массива                           

  int     flag=0;                  //Флаг строго возрастающего массива: строго

  int     i;                       //Счетчик шагов цикла                     

                                                                             

  inpdim(y,&n);                    //Вводим массив                           

  i = 0;                           //Обнуляем счетчик                        

                                                                             

  do                               //Начало цикла                            

  {                                                                           

    if (y[i] >= y[i+1])            //Если i-ый элемент массива >= i+1-го     

      flag = 1;                    //Флаг устанавливаем 1(не строго возрастает)

    i++;                           //Увеличиваем счетчик на 1                

  }                                                                          

  while(flag == 0 && i < n-1);     //Если Флаг не равен 0 или i>= n-1 заканчиваю

  if (flag == 0)                                 //Если Флаг равен 0

     printf("\nСтрого возрастающий массив\n");   //Строго возрастающий массив

  else                                           //Иначе

     printf("\nМассив нестрого возрастающий \n");//Массив нестрого возрастающий

  return(0);

}

void inpdim(float a[],int *n)

{

  int      i;

  do

  {

    printf("Введите число элементов массива (0<M<100):");

    scanf("%d",n);

    if ( *n >= M || *n <= 0 )

      {

        printf("Неверная длина массива (0<M<100):");

      }

   }

  while ( *n >= M || *n <= 0 );

  printf("\n Введите массив :\n");

    scanf("%d",n);

    if ( *n >= M || *n <= 0 )

      {

        printf("Неверная длина массива (0<M<100):");

      }

   }

  while ( *n >= M || *n <= 0 );

  printf("\n Введите массив :\n");

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

  {

     printf("Y[%d]=",i+1);

     scanf("%f",&a[i]);

  }

}

Описание переменных и исходный текст к 2-му примеру

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define M 200                           //Максиальная длина текста

main()

{

  void    inpstr(char a[]);             //Ввод текста

  char    string[M];                    //Текст

  int     i=0;                          //Счетчики шагов циклов

  int     leftbracket=0,rightbracket=0; //Количество левых и правых скобок в тексте

  int     flag=0;                       //Флаг верно поставленных правых скобок (верно: 0 неверно:1)

  inpstr(string);                       //Вводим текст

  do                                   //Начало цикла

  {

   if (string[i]=='(')                 //Если i-ый символ текста = (

     leftbracket++;                    //Увеличиваем счетчик левых скобок на 1

   if (string[i]==')')                 //Если i-ый символ текста = (

   {

     rightbracket++;                   //Увеличиваем счетчик правых скобок на 1

  if (leftbracket<rightbracket)     //Если Правых скобок больше          

     flag=1;                          //Правые скобки выставлены неправильно Флагу присваиваем 1

 }                                                                        

    i++;                                //Увеличиваем счетчик цикла на 1    

   }                                                                          _

   while(i<strlen(string) && flag==0);  //Если i > длины строки или Флаг = 1 заканчиваем цикл//

   if (leftbracket==rightbracket && flag==0)  //Если количество левых скобок равно количеству правых и флаг=0

    printf("\n Верно \n");                   //Скобки расставлены верно     

    else                                       //Иначе                        

    printf("\n Неверно \n");                 //Скобки расставлены неверно   

   return(0);                                                                

}                                                                           

void inpstr(char a[])                                                       

{                                                                           

  int      i;                                                               

  printf("\n Введите строку :\n");                                           

  gets(a);                                                                  

 }           

        Описание переменных и исходный текст к 3-му примеру

         #include <stdio.h>                                                            

#include <stdlib.h>                                                          

#define M 15              //длина массива                                    

main()                                                                       

{                                                                            

  void    inpdim(float a[]);//Процедура ввода массива                          

  void    outdim(адщфе a[]);//Процедура вывода массива                         

  float     y[M];           //Массив                                           

  float    i,j;            //Счетчики шагов циклов                            

  float    k;              //Для хранения номера минимального элемента        

  float    n;              //Для хранения минимального элемента               

                                                                             

  inpdim(y);              //Вводим массив                                    

                                                                              

  for(i=0; i<M ; i++)     //Цикл по i от 0 до М                              

  {                                                                          

     n=y[i];              //запоминаем элемент как минимальный                

     k=i;                 //и его номер как номер минимального               

                                                                             

     for(j=i+1; j<M; j++) //Цикл по j от i+1 до М                            

     {                                                                       

     {                                                                       

        if (y[j] < n)     //Если элемент меньше минимального                 

        {                                                                     

           n=y[j];        //запоминаем элемент как минимальный               

           k=j;           //и его номер как номер минимального               

        }                                                                     

     }                                                                       

     y[k] = y[i];         //На место минимального записываем i-ый элемент    

     y[i] = n;            //На место i-го записываем минимальный элемент     

  }                                                                          

  outdim(y);              //Выводим массив                                   

  return(0);                                                                 

}                                                                             

void inpdim(float a[])                                                         

{                                                                            

  float      i;                                                                 

  printf("\n Введите массив :\n");                                           

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

  {                                                                           

     printf("Y[%f]=",i+1);                                              

     scanf("%f",&a[i]);                                                      

  }

}

void outdim(int a[])

{

  float      i;

  printf("\n Упорядоченный массив :\n");

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

  {

     printf("Y[%f]=",i+1);

     printf("%f",a[i]);

     printf("\n");

  }

}

                   Блок – схемы к примерам  (на следующей странице)   

1.

КОНЕЦ

Вывод

‘Массив  не строго возрастающий’

Вывод

‘Строго возрастающий массив’

да

нет

Если

flag =0

Если

i < n и flag=0

нет

да

i=i+1

нет

да

Если

Y[i] >= Y[i+1]

i=0

flag=0

НАЧАЛО

Ввод длины массива n,

Ввод массива Y

flag = 1

2.

да

Вывод

‘Неверно’

Вывод

‘Верно

Если flag =0  и leftbracket = rightbracket

нет

нет

Если

i<strlen(string) и flag=0

да

i=i+1

нет

да

Если

leftbracket < rightbracket

нет

да

rightbracket = rightbracket + 1

Если

string [i] = ‘(’

flag=0

нет

да

leftbracket = leftbracket + 1

Если

string [i] = ‘(’

i=0

Ввод текста

string

НАЧАЛО

КОНЕЦ

                     

flag=0

3.     

нет

j=j+1

j=k+1

M=15

Ввод массива Y

да

k=i

да

нет

да

n= y[i]

НАЧАЛО

i=0

Если

i <M

Если

y[j]<n

Вывод

массива Y

КОНЕЦ

Если

j<M

нет

n=y[j]

k=j

y[k]=y[i]

y[i]=n

i=i+1

                                                                                                        

Содержание:

1.     Условия задач и описания методов решения. Тесты для проверки работоспособности программы.

2.     Описания переменных и тексты программ. Результаты выполнения тестов.

3.     Блок – схемы алгоритмов решения задач.