Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика инф.docx
Скачиваний:
1
Добавлен:
09.09.2019
Размер:
48.6 Кб
Скачать

Var X,z: integer;

f: text;

s,t:string;

Begin

ClrScr;

Assign (f,'c:\text.txt');

writeln ('Vvedite chisla cherez probel');

readln(s);

Rewrite(f);

write(f,s);

close(f);

reset(f);

z:=0;

repeat

read(f,x);

if sqrt(x) mod 2=1 then z:=z+1;

until EOF(f);

close(f);

write('Kolichestvo kvadratov neparnix chisel: ',z);

Readkey;

end.

  1. Дано текстовий файл f компоненти якого є цілими числами. Написати програму, яка визначає кількість подвоєних непарних чисел серед компонент файлу.

Program rabota8c;

Uses Crt;

Var X,z: integer;

f: text;

s:string;

Begin

ClrScr;

Assign (f,'c:\text.txt');

writeln ('Vvedite chisla cherez probel');

readln(s);

Rewrite(f);

write(f,s);

close(f);

reset(f);

z:=0;

repeat

read(f,x);

If x/2=x div 2 Then

if (x div 2) mod 2=1 then z:=z+1;

until EOF(f);

close(f);

write('Kolichestvo ydvoenix neparnix chisel: ',z);

Readkey;

end.

  1. Дано текстовий файл f компоненти якого є цілими числами. Написати програму, яка визначає добуток компонент, значення яких кратне 3-м.

Program rabota8d;

Uses Crt;

Var X,z: integer;

f: text;

s:string;

Begin

ClrScr;

Assign (f,'c:\text.txt');

writeln ('Vvedite chisla cherez probel');

readln(s);

Rewrite(f);

write(f,s);

close(f);

reset(f);

z:=1;

repeat

read(f,x);

if x mod 3=0 then z:=z*x;

until EOF(f);

close(f);

write('Proizvedenie chisel kratnix 3: ',z);

Readkey;

end.

ІХ. Скласти о програму ООП

DotVec.cpp

#include "DotVec.h"

void Print ( const Dot & D )

{

char S [ ] ="Координаты точки ";

CharToOem ( S , S ) ;

cout<<S<<D.name<<" :";

cout<<"\tx = "<<D.x<<"\ty = "<<D.y<<'\n' ;

}

void Input ( Dot & D )

{

char S[ ] ="Введите координаты точки ";

CharToOem ( S , S ) ;

cout<<S<<D.name<<'\n' ;

cout <<"\tx="; cin >>D.x ;

cout <<"\ty="; cin >>D.y ;

}

double Dist ( const Dot & A , const Dot & B )

{

double X = A.x - B.x ;

double Y = A.y - B.y ;

return sqrt(X*X + Y*Y);

}

double Area ( const Dot & A , const Dot & B , const Dot & C )

{

double a = Dist ( C , B ) ;

double b = Dist ( C , A ) ;

double c = Dist ( A , B ) ;

double p = ( a+b+c ) / 2.0 ;

return sqrt ( p*( p - a )*( p - b )*(p - c)) ;

}

double Angle ( const Dot & A , const Dot & B , const Dot & C )

{

const double pi = 4*atan ( 1.0 ) ;

Vec BA ("BA") , BC ("BC") ;

Vector ( B , A , BA ) ; Vector ( B , C , BC ) ;

return acos ( Scalar ( BA , BC ) / ( Modul ( BA ) * Modul ( BC )))*180 / pi ;

}

void Print ( const Vec & V )

{

char S [ ] ="Проекции вектора ";

CharToOem ( S , S ) ;

cout<<S<<V.name<<" :" ;

cout<<"\tx = "<<V.x<<"\ty = "<<V.y<<'\n';

}

double Modul ( const Vec & V )

{

return sqrt ( V.x * V.x + V.y * V.y ) ;

}

double Scalar (const Vec &V, const Vec &W)

{

return ( V.x * W.x + V.y * W.y ) ;

}

void Rotate ( const Vec & V ,

double f ,

Vec & W )

{

const double pi = 4 * atan ( 1.0 ) ;

f *= pi / 180.0 ;

W.x = V.x * cos ( f ) - V.y * sin ( f ) ;

W.y = V.x * sin ( f ) + V.y * cos ( f ) ;

}

void Vector ( const Dot & N ,

const Dot & K ,

Vec & V )

{

V.x = K.x - N.x ;

V.y = K.y - N.y ;

}

void EndVec ( const Dot & N ,

const Vec & V ,

Dot & K )

{

K.x = N.x + V.x ;

K.y = N.y + V.y ;

}

DotVec.h

#include<iostream.h>

#include<windows.h>

#include <math.h>

class Vec ;

class Dot

{

double x , y ;

char name ;

public:

Dot (char Name) : name (Name) , x ( 0 ) , y ( 0 ) { }

Dot ( char Name , double X , double Y ) { name = Name ; x = X ; y = Y ; }

void Print () ;

void Input ();

double Dist ( Dot & A) ;

double Area ( const Dot & A , const Dot & B , const Dot & C ) ;

friend void Vector ( const Dot & N , const Dot & K , Vec & V ) ;

friend void EndVec ( const Dot & N , const Vec & V , Dot & K ) ;

} ;

class Vec

{

double x , y ;

char name [ 3 ] ;

public:

Vec ( char* pName ) : x ( 0 ) , y ( 0 ) { strncpy ( name , pName , 3 ) ; }

Vec ( char* pName , double X , double Y ) : x (X) , y (Y) {strncpy (name, pName, 3 );}

friend void Print (const Vec &V ) ;

friend double Modul ( const Vec & V ) ;

friend double Scalar ( const Vec & V , const Vec & W ) ;

friend void Rotate ( const Vec & V , double f , Vec & W ) ;

friend void Vector ( const Dot & N , const Dot & K , Vec & V ) ;

friend void EndVec ( const Dot & N , const Vec & V , Dot & K ) ;

} ;

Main.cpp

#include "DotVec.h"

bool Repeat ( ) ;

void Title ( ) ;

int main ( )

{

Title ( ) ;

do

{

Dot A ('A',2 ,0) , B ('B', 4, 0) ;

Dot C ( 'C' ) ;

Vec AB ( "AB" ) , AC ( "AC" ) ;

Input ( A ) ; Input ( B ) ;

Vector ( A , B , AB ) ;

Print ( AB ) ;

Rotate ( AB , 60 , AC ) ;

Print ( AC ) ;

EndVec ( A , AC , C ) ;

Print ( C ) ;

double S = Area (A , B , C ) ;

cout<<"Sabc = "<<S<< '\n' ;

char str [ 30 ] ;

const char g = ( char ) 248 ;

CharToOem ( "Углы треугольника :", str ) ;

cout << str << "\tBAC = " << Angle ( B , A , C ) << g

<< "\tCBA = " << Angle ( C , B , A ) << g

<< "\tACB = " << Angle ( A , C , B ) << g << '\n' ;

CharToOem ( "Стороны треугольника:", str ) ;

cout << str << "\tAB = " << Dist ( A , B )

<< "\t\tAC = " << Dist ( A , C )

<< "\t\tBC = " << Dist ( B , C ) << '\n' ; }

while ( Repeat ( )) ;

}

bool Repeat ( )

{

char S [ ] = "Продолжить ? (Y/N) " ;

CharToOem ( S , S ) ;

cout << S ;

char C ;

cin >> C ;

if ( C == 'Y' || C == 'y' )return true ;

else return false ;

}

void Title ( )

{

char S [ ] = "\t\tПрограмма вычисляет координаты третьей вершины и площадь"

"\t\t\t\tправильного треугольника\n"

"\t\tПрограмма составлена студентом группы 3351 Незнайкой О.К.\n ";

CharToOem ( S , S ) ;

cout << S ;

}