Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <cstdio>
- using namespace std;
- void czytaj_rownanie(float& a, float& b, float& c); //funkcja wczytuje wspolczynniki jednego rownania
- void wypisz_rozwiazanie(int N, float x, float y);
- float oblicz_wyznacznik(float p1, float p2, float p3, float p4);
- int oblicz_rozwiazanie(float a1, float b1, float c1, float a2, float b2, float c2, float& x, float& y);
- char* moje_strcpy(char t1[], char t2[]);
- void moje_strcmp(char tab1[], char tab2[]);
- int moje_strlen(char t[]);
- char* moje_strcat(char tab1[], char tab2[]);
- char* moje_strupr(char tb[]);
- char* moje_strlwr(char tb[]);
- int main(int argc, char* argv[])
- {
- int zadanie;
- cout << "Autor: Dominika Kmiecik\n";
- cout << "Grupa: SR/N 04.12.2019 r. (Sroda nieparzysta)\n";
- cout << "Temat: Laboratorium 5, zadania\n";
- cout << "Data: 4 grudnia 2019 r. (Data edycji: 4 grudnia 2019r.)\n";
- do
- {
- cout <<"\n1. Zadanie 1\n";
- cout << "Zadanie 2: \n";
- cout << "2. Moje strcpy\n";
- cout << "3. Moje stcrmp\n";
- cout << "4. Moje strlen\n";
- cout << "5. Moje strcat\n";
- cout << "6. Zadanie 3\n";
- cout << "\nPodaj nr : ";
- cin >> zadanie;
- switch (zadanie)
- {
- case 1:
- float a1, b1, c1;
- float a2, b2, c2;
- float x, y;
- int N;
- czytaj_rownanie(a1, b1, c1);
- czytaj_rownanie(a2, b2, c2);
- oblicz_wyznacznik(a1, b1, a2, b2);
- N = oblicz_rozwiazanie(a1, b1, c1, a2, b2, c2, x, y);
- wypisz_rozwiazanie(N, x, y);
- break;
- case 2:
- char slowo1[200], slowo2[200];
- cout << "\nPodaj zawartosc pierwszej tablicy: ";
- cin >> slowo1;
- cout << "\nPodaj zawartosc drugiej tablicy: ";
- cin >> slowo2;
- moje_strcpy(slowo1, slowo2);
- cout << "\nPierwsza tablica: " << slowo1 << "\nDruga tablica: "<< slowo2;
- break;
- case 3:
- char tab1[200], tab2[200];
- cout << "\nPodaj zawartosc pierwszej tablicy: ";
- cin >> tab1;
- cout << "\nPodaj zawartosc drugiej tablicy: ";
- cin >> tab2;
- moje_strcmp(tab1, tab2);
- break;
- case 4:
- char tablica1[200], tablica2[200];
- cout << "\nPodaj zawartosc pierwszej tablicy: ";
- cin >> tablica1;
- cout << "\nPodaj zawartosc drugiej tablicy: ";
- cin >> tablica2;
- cout << "\nTab1 ";
- moje_strlen(tablica1);
- cout << "\nTab2 ";
- moje_strlen(tablica2);
- break;
- case 5:
- char zawartosc1[200], zawartosc2[200];
- cout << "\nPodaj zawartosc pierwszej tablicy: ";
- cin >> zawartosc1;
- cout << "\nPodaj zawartosc drugiej tablicy: ";
- cin >> zawartosc2;
- moje_strcat(zawartosc1, zawartosc2);
- break;
- case 6:
- char t1[200], t2[200];
- cout << "\nPodaj zawartosc pierwszej tablicy: ";
- cin >> t1;
- cout << "\nPodaj zawartosc drugiej tablicy: ";
- cin >> t2;
- cout << "\nTabela 1\n";
- moje_strupr(t1);
- cout << "\nstrup dla tab1: ";
- cout << t1;
- moje_strlwr(t1);
- cout << "\nstrlwr dla tab1: ";
- cout << t1;
- cout << "\nTabela 2\n";
- moje_strupr(t2);
- cout << "\nstrup dla tab2: ";
- cout << t2;
- moje_strlwr(t2);
- cout << "\nstrlwr dla tab2: ";
- cout << t2;
- break;
- default:
- break;
- }
- } while (true);
- }
- void czytaj_rownanie(float& a, float& b, float& c)
- {
- printf("\nPodaj wspolczynnik a = ");
- scanf_s("%f", &a);
- printf("\nPodaj wspolczynnik b = ");
- scanf_s("%f", &b);
- printf("Podaj wspolczynnik c = ");
- scanf_s("%f", &c);
- }
- void wypisz_rozwiazanie(int N, float x, float y)
- {
- switch (N)
- {
- case 0:
- printf("\nBrak rozwiazan, uklad sprzeczny");
- break;
- case 1:
- printf("\nUklad ma jedno rozwiazanie x = %f y = %f", x, y);
- break;
- case 2:
- printf("\nUklad ma nieskonczenie wiele rozwiazan");
- break;
- }
- }
- float oblicz_wyznacznik(float p1, float p2, float p3, float p4)
- {
- float W = p1 * p4 - p2 * p3;
- return W;
- }
- int oblicz_rozwiazanie(float a1, float b1, float c1, float a2, float b2, float c2, float& x, float& y)
- {
- float wyznacznik = oblicz_wyznacznik(a1,b1,a2,b2);
- float Wx = c1 * b2 - c2 * b1;
- float Wy = a1 * c2 - a2 * c1;
- if (wyznacznik != 0)
- {
- x = Wx / wyznacznik;
- y = Wy / wyznacznik;
- return 1;
- }
- if (oblicz_wyznacznik(a1,b1,a2,b2) == 0)
- {
- if (Wx != 0 && Wy != 0)
- {
- return 0;
- }
- if (Wx == 0 && Wy == 0)
- {
- return 2;
- }
- }
- }
- char* moje_strcpy(char t1[], char t2[])
- {
- int i = 0;
- do
- {
- t2[i] = t1[i];
- i++;
- } while (t2[i]!=0);
- return t2;
- }
- void moje_strcmp(char tab1[], char tab2[])
- {
- bool podobne = true;
- int i=0;
- do
- {
- if (tab1[i] == tab2[i])
- {
- podobne = true;
- }
- else
- {
- podobne = false;
- }
- i++;
- } while (podobne==true && (tab1[i] != 0 || tab2[i] != 0));
- if (podobne==true)
- {
- cout << "\ntab1[] i tab2[] sa takie same";
- }
- else
- {
- cout << "\ntab1[] i tab2[] nie sa takie same";
- }
- }
- int moje_strlen(char t[])
- {
- int i = 0,znaki=0;
- do
- {
- if (t[i]!=0)
- {
- znaki++;
- }
- i++;
- } while (t[i]!=0);
- cout << "\nsklada sie z " << znaki << " znakow";
- return znaki;
- }
- char* moje_strcat(char tab1[], char tab2[])
- {
- char tab[200] = { 0 };
- cout << "tab1 = ";
- int i = 0;
- do
- {
- tab[i] = tab1[i];
- i++;
- } while (tab1[i] != 0);
- int j = 0;
- do
- {
- tab[i] = tab2[j];
- i++;
- j++;
- } while (tab2[j-1] != 0);
- cout << tab;
- return tab;
- }
- char* moje_strupr(char tb[])
- {
- int i = 0;
- do
- {
- if (tb[i] >= 'a' && tb[i] <= 'z')
- {
- tb[i] -= 32;
- }
- i++;
- } while (tb[i]!=0);
- return tb;
- }
- char* moje_strlwr(char tb[])
- {
- int i = 0;
- do
- {
- if (tb[i]>='A' && tb[i]<='Z')
- {
- tb[i] += 32;
- }
- i++;
- } while (tb[i]!=0);
- return tb;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement