Программирование на зыках высокого уровня

Автор: Пользователь скрыл имя, 20 Марта 2012 в 22:09, лабораторная работа

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

ЗАДАНИЕ №1
Постановка задачи:
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от X нач. до X кон. с шагом dX.
F = где a,b,c –действительные числа.

Работа содержит 1 файл

СПбГУАП.ПЯВУ.Отчет1.doc

— 124.00 Кб (Скачать)


 

 

 

 

 

 

ЛАБОРАТОРНЫЕ РАБОТЫ

по курсу:

ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ

 

 

 

 

 

 

 

 

 

ЗАДАНИЕ №1

 

Постановка задачи:

 

Вычислить и вывести на экран в виде таблицы значения функции F на интервале от X нач. до X кон. с шагом dX.

F = где a,b,c –действительные числа.

          Функция F должна принимать действительное значение. Если выражение

(Ац МОД2 Вц) И НЕ(Ац ИЛИ Сц) не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозначены целые части a,b,c, операции И, ИЛИ и МОД2 (сложение по модулю 2 или поразрядное исключающее ИЛИ) – поразрядные. Значения a,b,c, X нач.,X кон.,в  dX ввести с клавиатуры.

 

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

 

#include <iostream>

#include <math>

#include<iomanip>

using namespace std;

 

          unsigned int aint,bint,cin; int d,f;      //  aint, bint, cint – целые части а,b и c, f – целое зачение F

float x,Xn,Xk,dX,a,b,c,F,y;

int main ()

{

     d=0;

     cout << "Vvedite a,b i c:" << endl;     // Ввод данных

     cin >> a >> b >> c;

 

   do

   {

    cout << "Vvedi Xn" << endl;

    cin >> Xn;

    cout << "Vvedi Xk > Xn" << endl;

    cin >> Xk;

    cout << "Vvedi dX > 0" << endl;

    cin >> dX;

    if  (Xn > Xk || dX<0)           // Проверка значений на правильность ввода

          cout << "Povtorite vvod. Xk>Xn i dX>0" <<endl;

    }    while (Xn > Xk || dX<0);

 

  aint=( unsigned int)a;     //   Целая часть a

  bint=int(b);

  cint=int(c);

  cout <<"------------------------------------" << endl << endl;

  cout << "aint= " << aint << endl<< "bint= " << bint << endl<< "cint= " << cint << endl;

  cout <<" (aint ^ bint) & !(aint | cint)= ";

  y=(aint ^ bint) & ~(aint | cint);          //   Выражение   (Ац МОД2 Вц) И НЕ(Ац ИЛИ Сц)

  cout << y << endl;

 

  if (y==0)

      cout <<"F prinimaet celije znachenija" << endl;

      else

         cout <<"F prinimaet dejstvitelnije znachenija" << endl;

 

  cout <<"-----------------------------" << endl<< "|       X      |        F      |" << endl;

  for (x = Xn; x <= Xk; x = x + dX)

  {

       if (c<0 && a!=0)

          F = -a*x*x;

       else

              if (c > 0 && a==0 )

                    if (x==0)

                         d=1;

                          else

                         {

                            d=0;

                             F = (a-x) / (c*x);

                       }

 

                    else

                    {

                          if (c==0)

                         d=1;

                            else

                          {

                                 d=0;

                                F = x/c;

                          }

                   }

     cout <<"      " << x<<"          ";  //   Вывод х

     if (d==0)                //   Функция определена

     {

            if (y==0)

            {

                   f=(int)F;      

                   cout <<"   " << f <<endl;   //  Вывод целых значений F

            }

           else           //  Функция  не определена

                  cout <<"   " <<fixed<<setprecision(1)<< F <<endl;   // Вывод действительных значений F

    }

        else

            cout << "Funkcija ne opredelena" <<endl;

           }

        cin >> y;

        return 0;     // Успешное завершение программы

        }

 

 

 

 

 

 

 

 

 

 

 

 

Контрольные примеры:

 

 

 

 

 

 

 

ЗАДАНИЕ № 2

 

      Постановка задачи:

В одномерном массиве состоящем из n вещественных чисел, вычислить:

1.         минимальный элемент массива

2.             сумму элементов массива,расположенных между первым и последним положительным элементами
Преобразовать массив таким образом,чтобы сначало распалагались все элементы,равные 0,а потом все остальные

 

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

 

#include <vcl.h>

# include <conio.h>

# include <stdio.h>

# include <math.h>

#include<iostream.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

  const int n=8;

int i,j,xi,cntr,xif,xil; //xi - pozicija min, xil - pozicija last +,  xif - pozicija first +

float ar[n],ar2[n],x, sum;

int main ()

{

   {1. Ввод массива }

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

      {

          cout << "Vvedite next element " <<endl;

           cin >> ar[i];

    }

  {2. Поиск минимального элемента }

  x=ar[1];

  xi=1;

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

  {

       if (ar[i]<x)

       {

           x=ar[i];

     

    xi=i;

       }

  }

  cout<<"Minimalnij element massiva = "<<x<<" imeet nomer "<<xi <<endl;

  sum=0;     // Обнуление суммы

{3. Поиск первого положительного элемента}

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

       if (ar[i]>0)

      {

          xif=i;   

           break;

      }

{4. Поиск последнего положительного элемента}

  for (i=n;i>0;i--)

       if (ar[i]>0)

       {

           xil=i;

            break;

       }

  {5. Сумма элементов массива, расположенный между первым и последним положительными элементами}

  for (i=xif;i<xil;i++)

          sum=sum+ar[i];

   cout<<"Summa elementov mezdu pervim i poslednim polozitelnimi = ";

  cout<<sum  <<endl;

  {6. Сортировка массива}

  j=0;

  cntr=0;

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

  {

       if (ar[i] != 0)

       {

            ar2[j]=ar[i];

             ar[i]=0;

            j++;  

             cntr++;  

       }

  }

  j=0;

  for (i=n-cntr;i<n;i++)

  {

         ar[i]=ar2[j];

        j++;

  }

{7. Вывод массива}

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

        cout<<Sortirovka: <<ar[i]<<”  “;

  cin >> x;

  return 0;

}

 

Контрольные примеры:

 

Vvedite next element: -2

Vvedite next element:  0

Vvedite next element:  1

Vvedite next element:  3

Vvedite next element: -2

Vvedite next element:  4

Vvedite next element:  1

Vvedite next element: -3

Minimalnij element massiva = -3 imeet nomer 7

Summa elementov mezdu pervim i poslednim polozitelnimi = 5

Sortirovka: 0  -2  1  3  -2  4  1  -3

 

 

 

 

 

 

 

 



Информация о работе Программирование на зыках высокого уровня