Wyklad 5 Mech IPEH


TECHNIKI KOMPUTEROWE
Pliki. Operacje wejścia/wyjścia.
Algorytmy oparte na operacjach
geometrycznych.
Prof. dr hab. Jerzy Pokojski
wydział SiMR PW, Mechatronika i IPEH
I rok, semestr I
Wykład 5
Pliki. Operacje wejścia/wyjścia.
Pliki. Operacje wejścia/wyjścia.
Przykład 1
Pliki. Operacje wejścia/wyjścia.
#include "stdafx.h"
#include "stdafx.h"
Przykład 1/1
#include
#include
#include
using namespace System;
using namespace std;
int main(array ^args)
{
FILE *wsk;
int d;
Przykład 1/2
int dana1, dana2, n;
wsk = fopen("wyniki.dat", "w");
for(n=1; n<101 ; n++)
fprintf(wsk, " %d %d \n ", n, n*n);
fclose(wsk);
wsk = fopen("wyniki.dat", "r");
for(n=1; n<101 ; n++)
{
fscanf(wsk, "%d %d \n ", &dana1, &dana2);
printf("dana %d wartosc %d \n ", dana1, dana2);
}
Pliki. Operacje wejścia/wyjścia.
Przykład 2
#include "stdafx.h"
#include
Przykład 2/1
using namespace System;
using namespace std;
int main(array ^args)
{
ifstream in_plik;
ofstream out_plik;
in_plik.open("dane_we.dat");
out_plik.open("wynik.dat");
int dana1, wynik = 3;
in_plik >> dana1;
Przykład 2/2
wynik = 2*dana1;
out_plik << "wynik :"<< wynik << endl <<
"wynik 2:" << 2*wynik << endl;
in_plik.close();
out_plik.close();
return 0;
}
Algorytmy oparte na operacjach
geometrycznych.
Algorytmy oparte na operacjach
geometrycznych.
- wyjaśnienie pojęcia przestrzeni rastrowej i
powiązanie jej z 2-wymiarową przestrzenią
rzeczywistą.
Algorytmy oparte na operacjach
geometrycznych.
- punkty definiujące
(x1, y1) (x2, y2)
Algorytmy oparte na operacjach
geometrycznych.
- punkty definiujące
(x1, y1) (x2, y2)
x(1), y(1) x(2), y(2)
Algorytmy oparte na operacjach
geometrycznych.
- punkty definiujące
(x1, y1) (x2, y2)
x(1), y(1) x(2), y(2)
Wspolrzedne(1,1) Wspolrzedne(2,1)
Wspolrzedne(1,2) Wspolrzedne(2,2)
Algorytmy oparte na operacjach
geometrycznych.
- punkty definiujące
Algorytmy oparte na operacjach
geometrycznych.
- długość wczytana jako
dokładna wielkość
liczbowa
Algorytmy oparte na operacjach
geometrycznych.
- wielkość liczbowa
uzyskana jako
....
wskazania punktu na
ekranie
....
Algorytmy oparte na operacjach
geometrycznych.
- porównanie długości 2
odcinków
- określenie relacji
równości odcinków
Algorytmy oparte na operacjach
geometrycznych.
- określenie relacji
prostopadłości 2 odcinków
Algorytmy oparte na operacjach
geometrycznych.
- prezentacja procesu tworzenia prostej aplikacji
okienkowej w MS C++
Przykład 1
Przykład 3
private: System::Void Form1_Paint(System::Object^
sender, System::Windows::Forms::PaintEventArgs^ e) {
Graphics^ g = e->Graphics;
Pen^ pen=gcnew Pen(Color::Blue);
g->DrawRectangle(pen,50,50,100,50);
g->DrawEllipse(pen,50,150,100,50);
Point a1=Point(50,300);
Przykład 1/1
Point b1=Point(150,300);
Point c1=Point(100,250);
array^ trojkat={a1,b1,c1};
g->DrawPolygon(pen,trojkat);
SolidBrush^ brush = gcnew SolidBrush(Color::Cyan);
g->FillRectangle(brush,250,50,100,50);
g->FillEllipse(brush,250,150,100,50);
pen->Color=Color::Red;
g->DrawEllipse(pen,250,150,100,50);
Point a2=Point(250,300);
Point b2=Point(350,300);
Point c2=Point(300,250);
Przykład 1/2
array^ trojkat1={a2,b2,c2};
brush->Color=Color::Green;
g->FillPolygon(brush,trojkat1);
}
Przykład 2
private: System::Void btnStart_Click(System::Object^ sender,
System::EventArgs^ e) {
timer1->Enabled=true;
}
private: System::Void btnStop_Click(System::Object^ sen
System::EventArgs^ e) {
timer1->Enabled=false;
}
private: System::Void timer1_Tick(System::Object^ sende
System::EventArgs^ e) {
Graphics^ g = this->CreateGraphics();
Pen^ pen=gcnew Pen(Color::Cyan);
g->DrawRectangle(pen,x1-1,50,100,50);
pen->Color=Color::Blue;
g->DrawRectangle(pen,x1,50,100,50);
x1++;
}
Przykład 2
Przykład 3
Przykład 3
Przykład 3
Przykład 3/1
using namespace System::Drawing;
//!!! zmienne globalne
double xp=200, yp=100, xk, yk, fi=-Math::PI/2;
int startstop=0;
int r=70;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e) {
objRys = this->CreateGraphics();
}
Przykład 3/2
private: System::Void btnstartstop_Click(System::Object^ sender,
System::EventArgs^ e) {
if(startstop==0) {
startstop=1;
btnstartstop->Text="Stop";
}
else
{
startstop=0;
btnstartstop->Text="Start";
}
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
if(startstop==1) {
objRys->Clear(SystemColors::Control);
Przykład 3/3
Pen^ mypenWsk = gcnew Pen(Color::Blue,3.0F);
SolidBrush^ mybrushTar = gcnew SolidBrush(Color::Cyan);
objRys->FillEllipse(mybrushTar,Convert::ToInt32(xp-r),Convert::ToInt32(yp-r),
Convert::ToInt32(2*r),Convert::ToInt32(2*r));
objRys->DrawEllipse(Pens::Magenta,Convert::ToInt32(xp-r),Convert::ToInt32(yp-r),
Convert::ToInt32(2*r),Convert::ToInt32(2*r));
xk=xp+r*Math::Cos(fi);
yk=yp+r*Math::Sin(fi);
objRys->DrawLine(mypenWsk,Convert::ToInt32(xp),Convert::ToInt32(yp),
Convert::ToInt32(xk),Convert::ToInt32(yk));
fi=fi+Math::PI/30;
}
}
Algorytmy oparte na operacjach
geometrycznych.
Przykład 4
Przykład 4
- porównanie długości 3 odcinków i stwierdzenie czy
mogą stanowić boki trójkąta
private: System::Void
button1_Click(System::Object^ sender,
System::EventArgs^ e) {
double boki[2];
void sortowanie(double *);
Przykład 4/1
textBox4->Text= "";
textBox5->Text= "";
boki[0] = Convert::ToDouble(textBox1->Text);
boki[1] = Convert::ToDouble(textBox2->Text);
boki[2] = Convert::ToDouble(textBox3->Text);
SortowanieRosnaco(boki);
if (boki[0] + boki[1] > boki[2])
{
textBox4->Text= "Z podanych odcinków można
zbudować trójkąt";
if ( (Math::Pow(boki[0], 2) + Math::Pow(boki[1] , 2) )
== Math::Pow(boki[2] , 2) )
{
textBox5->Text="trójkąt prostokątny";
}
}
else
{
textBox5->Text= " nie można zbudować trójkąta";
}
}
Przykład 4/2
void SortowanieRosnaco(double * boki)
{
double tmp ;
int k, i;
for (k=0 ; k <= 1; k++)
{
for (i = 0; i <= 1; i++)
{
if ( boki[i] > boki[i + 1])
{
tmp = boki[i];
boki[i] = boki[i + 1];
boki[i + 1] = tmp;
}
}
}
}
};
Przykład 4/3
}
Przykład 5
Przykład 5
- możliwości animacji  podstawowe środki
Przykład 2
Przykład 5/1
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
//!!! zmienne globalne
double t;
int startstop=0;
private: System::Void button1_Click(System::Object^
sender, System::EventArgs^ e) {
if(startstop==0)
{
timer1->Enabled=true;
startstop=1;
button1->Text="Stop";
}
else
{
timer1->Enabled=false;
startstop=0;
button1->Text="Start";
}
Przykład 5/2
}
private: System::Void timer1_Tick(System::Object^ sender,
System::EventArgs^ e) {
float s1, s2, v2, t2p, v1, dt, x1, x2, delta, strefa ;
int xx1, xx2;
Graphics^ g = this->CreateGraphics();
if(startstop==1) {
v1=Convert::ToSingle(textBox1->Text);
v2=Convert::ToSingle(textBox2->Text);
t2p=Convert::ToSingle(textBox3->Text);
dt=Convert::ToSingle(textBox4->Text);
strefa=Convert::ToSingle(textBox5->Text);
t = t + dt;
s1 = v1 * t;
Przykład 5/3
if (s1 > 20) s1 = 20;
Przykład 5/4
xx1 = 17 + 37 * s1;
g->Clear(SystemColors::Control);
Pen^ pen=gcnew Pen(Color::Red);
g->DrawRectangle(pen,xx1,300,20,10);
pen->Color=Color::Blue;
if (t - t2p < 0.0)
g->DrawRectangle(pen,761,350,20,10);
textBox7->Text=Convert::ToString(t);
textBox8->Text=Convert::ToString(s1);
if (t - t2p > 0.0)
{
s2 = v2 * (t - t2p);
textBox9->Text=Convert::ToString(t-t2p);
textBox10->Text=Convert::ToString(s2);
if (s2 > 20 ) s2 = 20;
xx2=761 - 37 * s2;
g->Clear(SystemColors::Control);
pen->Color=Color::Blue;
g->DrawRectangle(pen,xx2,350,20,10);
pen->Color=Color::Red;
g->DrawRectangle(pen,xx1,300,20,10);
x1 = s1;
x2 = 20 - s2;
delta=Math::Abs(x1 - x2);
if ( delta < strefa)
{
textBox11->Text="Spotkanie pociągów";
}
else
{
textBox11->Text="";
Przykład 5/5
}
} } }
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e) {
Graphics^ g = this->CreateGraphics();
g->Clear(SystemColors::Control);
Pen^ pen=gcnew Pen(Color::Red);
g->DrawRectangle(pen,17,300,20,10);
pen->Color=Color::Blue;
g->DrawRectangle(pen,761,350,20,10);
t=0;
textBox7->Text="";
textBox8->Text="";
textBox9->Text="";
Przykład 5/6
textBox10->Text="";
textBox11->Text="";
}
Podsumowanie


Wyszukiwarka

Podobne podstrony:
Wyklad 8 mech momenty bezwladnosci
Wyklad 4 Mechatronika i IPEH
Wyklad 7 mech srodki ciezkosci
Wyklad 9 mech statyka zginania
1 wykład mech tech(1)id088
Wyklad 8 MiBM Mechatronika IPEH
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja
WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznej
mo3 wykladyJJ
ZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3
Wyklad 2 PNOP 08 9 zaoczne

więcej podobnych podstron