Автор: Пользователь скрыл имя, 20 Марта 2012 в 22:09, лабораторная работа
ЗАДАНИЕ №1
Постановка задачи:
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от X нач. до X кон. с шагом dX.
F = где a,b,c –действительные числа.
ЛАБОРАТОРНЫЕ РАБОТЫ
по курсу:
ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ ВЫСОКОГО УРОВНЯ
ЗАДАНИЕ №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 <<"---------------------------
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 <<"---------------------------
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
Информация о работе Программирование на зыках высокого уровня