Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!ПР10.doc
Скачиваний:
4
Добавлен:
14.04.2019
Размер:
85.5 Кб
Скачать

Задание №4

В соответствие с вариантом реализовать на языке Си программу (lab1_4.c) расчета значения суммы с заранее неизвестным числом повторений.

№ вар.

Вычислить

При x, равном

Точность вычислений

1

0,149

10 -5

#include <stdio.h>

#include <math.h>

int main() {

double s, sn, x, e;

int i;

e=10e-5;

x=0.149;

s=0.0;

do {

sn=cos(x * i) / i;

s=s+sn;

i++;

}

while(sn>e);

printf("s=%f\n", s);

return 0;

}

Результат:

#/** PhEDIT attribute block

#-11:16777215

#0:89:default:-3:-3:0

#89:119:TextFont10:0:-1:0

#119:533:default:-3:-3:0

#** PhEDIT attribute block ends (-0000162)**/

Задание №5

В соответствие с вариантом реализовать на языке Си программу (lab1_5.c) определения вхождения точки с введенными пользователем координатами в заштрихованную область.

1.

#include <math.h>

#include <iostream>

using namespace std;

float Fab( float X )

{

return -1.0 / 3 * X + 17.0 / 3 ;

}

float Fac( float X )

{

return -3.0 * X + 11 ;

}

float Fbc( float X )

{

return X - 1 ;

}

int main()

{

float x,y;

cout << "Enter x: ";

cin >> x;

cout << "Entet y: ";

cin >> y;

if ( pow( x - 3.5 , 2 ) + pow( y - 3.5 , 2 ) <= 2.5*2.5 ) // внутри окружности R = 2.5, центр (3.5; 3.5)

if ( y <= Fac(x) || y <= Fbc(x) || y >= Fab(x) ) // за пределами треугольника

{

cout << "Point (" << x << "; " << y << ") in region \n" ;

return 0;

}

cout << "Point (" << x << "; " << y << ") not in region \n" ;

return -1;

}

Задание №7

Написать программу, которая вводит с клавиатуры символьную строку длиной не более 80 символов, рассматриваемую как произвольное абстрактное предложение, состоящее из слов. Слова отделяются друг от друга как минимум одним символом пробела. Строка должна быть введена посимвольно с использованием функции getchar(). Из нее построить новую строку предложения, в которой слова упорядочены по возрастанию их длин. Результат распечатать на экране.

#include <iostream>

#include <string>

#include <vector>

#include <algorithm>

using namespace std;

struct string_by_size: public binary_function< const string& , const string& , bool >

{

bool operator() ( const string& lhs, const string& rhs )

{

return lhs.size() < rhs.size() ;

}

};

int main()

{

char myString[81];

fill(myString,myString+81,'\0');

char ch;

for( int i=0; i<80; ++i )

{

ch = getchar();

if ( ch == '\n' )

break;

myString[i] = ch;

}

vector< string > myVector;

string new_string;

int i;

//ищем первый символ не пробела в строке

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

if ( myString[i] != ' ' )

break;

//начинаем уже с первого слова, первые пробелы пропустили

for( ; i<81; ++i )

{

if ( myString[i] != ' ' )

new_string += myString[i];

else

{

myVector.push_back( new_string ); //добавляем в конец вектора строку, в которой записано одно слово без пробелов

new_string = "";

}

}

//сортировка строк в векторе по длине (в данном случае, по длине слова, в каждой строке только одно слово)

sort( myVector.begin(), myVector.end(), string_by_size() );

//вывод на экран всех строк из вектора, записанных через один пробел

for( int ind=0, count = myVector.size(); ind<count; ++ind )

cout << myVector[ind] << " ";

cout << endl;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]