// Funkcja glowna int main() { // zmienne int kont='t'; double x1, y1, x2, y2, x3, y3, a, b, c, p1, p2, p3, pole, ha, hb, hc;



Podobne dokumenty
Pole trójkąta ze współrzędnych punktów : P1(x1,y1), P2(x2,y2), P3(x3,y3)

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Obliczenie azymutu ze współrzędnych wersja C++ Builder

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Obliczenie azymutów ze współrzędnych punktów tablica struktur punktów, tablica struktur azymutów

Podstawy programowania C. dr. Krystyna Łapin

Instrukcje wejścia i wyjścia getchar(), gets(), scanf() puchar(), puts(), printf() Wejście: getchar() gets() scanf() Specyfikatory formatowania

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Transformacja współrzędnych przy 2 punktach dostosowania - przez wydłużenie i skręt lub transformacja liniowa

Podstawy programowania w C materiały dla ucznia:

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 3 - sem.iii. Dr inż. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. II - wykład 6. Dr hab. inż. M. Czyżak

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Obliczenie azymutów ze współrzędnych punktów Azymuty i długości - tablica struktur, funkcje, zapis wyników do pliku

Obliczenie ciągów poligonowych otwartych, obustronnie nawiązanych

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

Wstęp do Programowania, laboratorium 02

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Funkcja (podprogram) void

Programowanie - wykład 4

Wykład 3. Instrukcje powtarzające

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Wcięcie kątowe wstecz

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wstęp do programowania

Biblioteka standardowa - operacje wejścia/wyjścia

Co nie powinno być umieszczane w plikach nagłówkowych:

Podstawy programowania w języku C++

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Część 4 życie programu

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Uzupełnienie dot. przekazywania argumentów

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Argumenty wywołania programu, operacje na plikach

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

IX. Wskaźniki.(3 godz.)

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Proste algorytmy w języku C

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

INSTRUKCJE REPETYCYJNE PĘTLE

Proste algorytmy w języku C

Funkcje zawarte w bibliotece < io.h >

Programowanie strukturalne i obiektowe

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Tablice, funkcje - wprowadzenie

Wstęp do programowania 1

Wprowadzenie do programowania w języku C

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

tablica: dane_liczbowe

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Język ludzki kod maszynowy

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

FUNKCJE MATEMATYCZNE, np. atan2(y,x);

I - Microsoft Visual Studio C++

Ćwiczenie 5 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Tablicę 2-wymiarową można przedstawić jako pewien zestaw tablic 1-wymiarowych np.:

nowe operatory &. (kropka) * operator rzutowy ->, (przecinek) sizeof

Plik klasy. h deklaracje klas

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Liczby zespolone w języku C (cz.1)

Wykład :37 PP2_W9

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Wprowadzenie do programowania i programowanie obiektowe

Pliki. Informacje ogólne. Obsługa plików w języku C

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

1 Funkcje i ich wykorzystanie

Język C, tablice i funkcje (laboratorium)

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński

Podstawy Programowania

Elementarne wiadomości o języku C

Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Pytania z języka C/C++ main dyrektywy preprocesora #include 15. #define 16. #define słowa zastrzeżone \n, \t, \f 26.

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Programowanie Proceduralne

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. III. Dr inż. M. Czyżak

int f(); //f - funkcja zwracająca wartość typu int int (*f)(); //f - wskaźnik do funkcji zwracającej wartość typu int

Transkrypt:

// PTxy1.cpp // Obliczenie pola trojkąta ze wspolrzednych punktow // Dolaczenie bibliotek jezyka C #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <dos.h> #define clrscr() system("cls") #define NL putchar('\n') // Funkcje - deklaracje void witaj(); // nagłowek programu, pytanie czy uruchomić pomoc lub wyjść z programu void pomoc(); // momoc - szkic, wzory void dane(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3); // wprowadzenie danych double area(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3); // obl. pola z dx, dy double area1(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3); // obl. pola met. wyznaczn. void boki(double x1, double y1, double x2, double y2, double x3, double y3, double &a, double &b, double &c); // obl. bokow double area2(double a, double b, double c, double &ha, double &hb, double &hc); // pole z dlug. bokow float dl(float x1, float y1, float x2, float y2); // dlug. ze wspolrz void wyniki(double &p1, double &p2, double &p3, double &a, double &b, double &c, double &ha, double &hb, double hc); // wyswietl. wynikow // wydruk wynikow do pliku void wydrplik(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3, double &p1, double &p2, double &p3, double &a, double &b, double &c, double &ha, double &hb, double &hc); // Funkcja glowna int main() // zmienne int kont='t'; double x1, y1, x2, y2, x3, y3, a, b, c, p1, p2, p3, pole, ha, hb, hc; do // petla do - powtarzaj witaj(); // nagłowek programu, pytanie czy uruchomić pomoc lub wyjść z programu dane(x1, y1, x2, y2, x3, y3); // wprowadzenie współrzędnych p1= area(x1, y1, x2, y2, x3, y3); // pole 1 p2=area1(x1, y1, x2, y2, x3, y3); // pole 2 boki(x1, y1, x2, y2, x3, y3, a, b, c); // obliczenie boków p3=area2(a, b, c, ha, hb, hc); // pole 3 ze wzoru Herona wyniki(p1, p2, p3, a, b, c, ha, hb, hc); // wyświetlenie wyników wydrplik(x1,y1,x2,y2,x3,y3, p1, p2, p3, a, b, c, ha, hb, hc); puts("\ndalsze obliczenia (T, lub t) "); // wydruk do pliku kont= while (kont=='t' kont=='t'); // dopóki kontynuacja == Tak, koniec do return 0; // funkcja main zwraca 0 //--------- Funkcje - definicje ------------------ void witaj() // naglowek programu, pytanie czy pomoc lub wyjscie

int odp; puts("\tprogram PTXY1.cpp\n"); puts("\nobliczenie pola trojkata ze wspolrzednych \n"); printf("\n1 - obliczenia, 2 - koniec 3 - pomoc i obliczenia => "); odp= if (odp == '2') exit(1); if (odp== '3') pomoc(); // pomoc - szkic, wzory void pomoc() puts("program oblicza pole trojkata na podstawie danych wspolrzednych 3 punktow"); puts("wg wzoru zapisanego w postaci formy Hausbrandta jako funkcja 1"); puts("lub jako iloczyn wyznacznikowy"); puts("na podstawie przyrostow wspolrzednych\n"); puts("2p=f1= DX12 DY12 "); puts(" DX13 DY13 "); puts("czyli"); puts("p=(dx12*dy13-dx13*dy12)/2"); puts("\nlub ze wzoru wyznacznikowego na podstawie wspolrzednych"); puts("pole=(x1*y2+x2*y3+x3*y1-x2*y1-x3*y2-x1*y3)/2"); puts("\nszkic i oznaczenia"); puts(" B(x2,y2) "); puts(" o"); puts(" c / \\ a"); puts(" / \\"); puts(" o--b---o"); puts("a(x1,y1) C(x3,y3)"); puts("kontrola: Obliczenie długosci bokow i pola ze wzoru Herona"); puts("pole=sqrt(p*(p-a)*(p-b)*(p-c)), gdzie p=(a+b+c)/2"); printf("\nnacisnij Enter: "); // wprowadzenie współrzędnych void dane(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3) int kont='n'; puts("\nwprowadzenie danych: wspolrzednych 3 punktow: A(x1,y1), B(x2,y2), C(x3,y3)"); do printf("\npodaj x1 => "); scanf("%lf",&x1); printf("podaj y1 => "); scanf("%lf",&y1); printf("\npodaj x2 => "); scanf("%lf",&x2); printf("podaj y2 => "); scanf("%lf",&y2); printf("\npodaj x3 => "); scanf("%lf",&x3); printf("podaj y3 => "); scanf("%lf",&y3); puts("\n\nwprowadzono dane: \n"); printf("a(%.3lf, %.3lf\n", x1, y1); printf("b(%.3lf, %.3lf\n", x2, y2); printf("c(%.3lf, %.3lf\n", x3, y3); printf("\ndane dobre (T, N) "); kont= while (kont=='n' kont=='n');

// obliczenie pola ze wspolrzednych, posrednie obl. przyrostow dx, dy double area(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3) double p2, p1, dx12, dy12, dx13, dy13; puts("funkcja area(x1,y1,x2,y2,x3,y3\n"); printf("x1=%.3f\t",x1); printf("y1=%.3f\n",y1); printf("x2=%.3f\t",x2); printf("y2=%.3f\n",y2); printf("x3=%.3f\t",x3); printf("y3=%.3f\n",y3); dx12=x2-x1; dy12=y2-y1; dx13=x3-x1; dy13=y3-y1; printf("dx12=%.3f\t",dx12); printf("dy12=%.3f\n",dy12); printf("dx13=%.3f\t",dx13); printf("dy13=%.3f\n",dy13); p2=dx12*dy13-dx13*dy12; p1=p2*0.5; printf("\n2p =%10.4f Pole=%10.3f\n",p2, p1); puts("nacisnij Enter "); return(p1); // obl. pola bezposrednio ze wspolrz. met. wyznaczn. double area1(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3) // met. wyznacznikowa float p2; p2=(x1*y2+x2*y3+x3*y1-x2*y1-x3*y2-x1*y3)/2.0; printf("funkcja area1(). Pole 2 = %f\n",p2); return(p2); // dlugosc ze wspolrz double dl(double &x1, double &y1, double &x2, double &y2) float d, dx, dy; dx=x2-x1; dy=y2-y1; d=sqrt(dx*dx+dy*dy); return(d); // Obliczenie bokow void boki(double x1, double y1, double x2, double y2, double x3, double y3, double &a, double &b, double &c) puts("obliczenie bokow\n"); a=dl(x2,y2,x3,y3); b=dl(x1,y1,x3,y3); c=dl(x2,y2,x1,y1); printf("boki: a=%.3f b=%.3f c=%.3f\n",a,b,c);

// pole na podstawie bokow, ze wzoru Herona double area2(double a, double b, double c, double &ha, double &hb, double &hc) puts("funkcja area(3) - wzor Herona\n"); float p, ph, ph2; printf("\ndlugosci: a=%f b=%f c=%f",a,b,c); p=0.500*(a+b+c); ph=sqrt(p*(p-a)*(p-b)*(p-c)); ph2=2*ph; ha=ph2/a; hb=ph2/b; hc=ph2/c; printf("\np=%.3f",p); printf("\nwysokosci: ha=%.3f hb=%.3f hc=%.3f",ha,hb,hc); printf("\npole z dlugosci bokow: P3=%.3f",ph); puts("\nnacisnij Enter "); return(ph); // Wyniki na ekran void wyniki( double &p1, double &p2, double &p3, double &a, double &b, double &c, double &ha, double &hb, double hc) puts("\twyniki obliczen"); puts("\npola obliczone: "); printf("\npole z form Hausbrandta : %.3f",p1); printf("\npole z metody wyznacznikowej : %.3f",p2); printf("\npole na podstawie bokow wg wzoru Herona : %.3f",p3); puts("\nboki obliczone ze wspolrzednych\n"); printf("a = %.3f b = %.3f c = %.3f ", a, b, c); puts("obliczone wysokosci a, b, c: "); printf("ha = %.3f hb = %.3f hc = %.3f ", ha, hb, hc); puts("\nnacisnij Enter "); // Wydruk do pliku // void WydrPlik() void wydrplik(double &x1, double &y1, double &x2, double &y2, double &x3, double &y3, double &p1, double &p2, double &p3, double &a, double &b, double &c, double &ha, double &hb, double &hc) FILE *f; char nazwapliku[20], obl[20]; puts("wydruk wynikow do pliku"); printf("\npodaj nazwe pliku wynikow (do 8 znakow, np. w1.txt) : "); gets(nazwapliku); printf("\nnazwisko obliczajacego: "); gets(obl); f=fopen(nazwapliku,"a"); // otwarcie pliku do dopisywania

if (f==null) puts("nie mozna otworzyc pliku"); exit(1); fprintf(f,"\t\tprogram PTxy.cpp\n"); fprintf(f,"\nobliczenie pola trojkata ze wspolrzednych punktow\n"); fprintf(f,"\ndane: \n"); fprintf(f,"a(%.3f, %.3f)\nB(%.3f, %.3f)\nC(%.3f, %.3f)\n", x1,y1,x2,y2,x3,y3); fprintf(f,"\n\twyniki obliczen"); fprintf(f,"\npola obliczone: "); fprintf(f,"\npole z form Hausbrandta : %.3f",p1); fprintf(f,"\npole z metody wyznacznikowej : %.3f",p2); fprintf(f,"\npole na podstawie bokow wg wzoru Herona : %.3f\n",p3); fprintf(f,"\nboki obliczone ze wspolrzednych\n"); fprintf(f,"a = %.3f b = %.3f c = %.3f \n", a, b, c); fprintf(f,"\nobliczone wysokosci a, b, c: "); fprintf(f,"\nha = %.3f hb = %.3f hc = %.3f ", ha, hb, hc); fprintf(f,"\n\nobliczyl: %s ", obl); // getdate(&d); // fprintf(f," Data: %d-%d-%d\n\n", d.da_day, d.da_mon, d.da_year); fprintf(f,"\n\n"); fclose(f); // zamkniecie piku