Programowanie obiektowe i strukturalne
Ćwiczenie 4
Rozwiązania
Klasy i obiekty
Ćwiczenie 14.1
using System;
class LiczbaCalkowita
{
int liczba;
void WyswietlLiczbe()
{
Console.WriteLine(liczba);
}
int PobierzLiczbe()
{
return liczba;
}
}
Ćwiczenie 14.2
class Prostokat
{
int LewyGornyX;
int LewyGornyY;
int PrawyGornyX;
int PrawyGornyY;
int LewyDolnyX;
int LewyDolnyY;
int PrawyDolnyX;
int PrawyDolnyY;
}
Ćwiczenie 14.3
using System;
class Prostokat
{
int LewyGornyX;
int LewyGornyY;
int PrawyGornyX;
int PrawyGornyY;
int LewyDolnyX;
int LewyDolnyY;
int PrawyDolnyX;
int PrawyDolnyY;
int PobierzLewyGornyX()
{
return LewyGornyX;
}
int PobierzLewyGornyY()
{
return LewyGornyY;
}
int PobierzLewyDolnyX()
{
return LewyDolnyX;
}
int PobierzLewyDolnyY()
{
return LewyDolnyY;
}
int PobierzPrawyGornyX()
{
return PrawyGornyX;
}
int PobierzPrawyGornyY()
{
return PrawyGornyY;
}
int PobierzPrawyDolnyX()
{
return PrawyDolnyX;
}
int PobierzPrawyDolnyY()
{
return PrawyDolnyY;
}
void WyswietlWspolrzedne()
{
Console.WriteLine("Lewy gуrny x: " + PobierzLewyGornyX());
Console.WriteLine("Lewy gуrny y: " + PobierzLewyGornyY());
Console.WriteLine("Prawy gуrny x: " + PobierzPrawyGornyX());
Console.WriteLine("Prawy gуrny y: " + PobierzPrawyGornyY());
Console.WriteLine("Lewy dolny x: " + PobierzLewyDolnyX());
Console.WriteLine("Lewy dolny y: " + PobierzLewyDolnyY());
Console.WriteLine("Prawy dolny x: " + PobierzPrawyDolnyX());
Console.WriteLine("Prawy dolny y: " + PobierzPrawyDolnyY());
}
}
Ćwiczenie 14.4
using System;
class LiczbaCalkowita
{
int liczba;
void WyswietlLiczbe()
{
Console.WriteLine(liczba);
}
int PobierzLiczbe()
{
return liczba;
}
public static void Main()
{
LiczbaCalkowita lc1 = new LiczbaCalkowita();
lc1.liczba = 100;
Console.WriteLine("lc1.liczba = " + lc1.PobierzLiczbe());
}
}
using System;
class Prostokat
{
int LewyGornyX;
int LewyGornyY;
int PrawyGornyX;
int PrawyGornyY;
int LewyDolnyX;
int LewyDolnyY;
int PrawyDolnyX;
int PrawyDolnyY;
int PobierzLewyGornyX()
{
return LewyGornyX;
}
int PobierzLewyGornyY()
{
return LewyGornyY;
}
int PobierzLewyDolnyX()
{
return LewyDolnyX;
}
int PobierzLewyDolnyY()
{
return LewyDolnyY;
}
int PobierzPrawyGornyX()
{
return PrawyGornyX;
}
int PobierzPrawyGornyY()
{
return PrawyGornyY;
}
int PobierzPrawyDolnyX()
{
return PrawyDolnyX;
}
int PobierzPrawyDolnyY()
{
return PrawyDolnyY;
}
void WyswietlWspolrzedne()
{
Console.WriteLine("Lewy gуrny x: " + PobierzLewyGornyX());
Console.WriteLine("Lewy gуrny y: " + PobierzLewyGornyY());
Console.WriteLine("Prawy gуrny x: " + PobierzPrawyGornyX());
Console.WriteLine("Prawy gуrny y: " + PobierzPrawyGornyY());
Console.WriteLine("Lewy dolny x: " + PobierzLewyDolnyX());
Console.WriteLine("Lewy dolny y: " + PobierzLewyDolnyY());
Console.WriteLine("Prawy dolny x: " + PobierzPrawyDolnyX());
Console.WriteLine("Prawy dolny y: " + PobierzPrawyDolnyY());
}
public static void Main()
{
Prostokat prostokat1 = new Prostokat();
prostokat1.LewyGornyX = 100;
prostokat1.LewyGornyY = 100;
prostokat1.PrawyGornyX = 200;
prostokat1.PrawyGornyY = 100;
prostokat1.LewyDolnyX = 100;
prostokat1.LewyDolnyY = 150;
prostokat1.PrawyDolnyX = 200;
prostokat1.PrawyDolnyY = 150;
prostokat1.WyswietlWspolrzedne();
}
}
Ćwiczenie 14.5
using System;
class Prostokat
{
int LewyGornyX;
int LewyGornyY;
int PrawyDolnyX;
int PrawyDolnyY;
int pobierzLewyGornyX()
{
return LewyGornyX;
}
int pobierzLewyGornyY()
{
return LewyGornyY;
}
int pobierzLewyDolnyX()
{
return LewyGornyX;
}
int pobierzLewyDolnyY()
{
return PrawyDolnyY;
}
int pobierzPrawyGornyX()
{
return PrawyDolnyX;
}
int pobierzPrawyGornyY()
{
return LewyGornyY;
}
int pobierzPrawyDolnyX()
{
return PrawyDolnyX;
}
int pobierzPrawyDolnyY()
{
return PrawyDolnyY;
}
}
Ćwiczenie 14.6
using System;
class Prostokat
{
int LewyGornyX;
int LewyGornyY;
int PrawyGornyX;
int PrawyGornyY;
int LewyDolnyX;
int LewyDolnyY;
int PrawyDolnyX;
int PrawyDolnyY;
int PobierzLewyGornyX()
{
return LewyGornyX;
}
int PobierzLewyGornyY()
{
return LewyGornyY;
}
int PobierzLewyDolnyX()
{
return LewyDolnyX;
}
int PobierzLewyDolnyY()
{
return LewyDolnyY;
}
int PobierzPrawyGornyX()
{
return PrawyGornyX;
}
int PobierzPrawyGornyY()
{
return PrawyGornyY;
}
int PobierzPrawyDolnyX()
{
return PrawyDolnyX;
}
int PobierzPrawyDolnyY()
{
return PrawyDolnyY;
}
void WyswietlWspolrzedne()
{
Console.WriteLine("Lewy gуrny x: " + PobierzLewyGornyX());
Console.WriteLine("Lewy gуrny y: " + PobierzLewyGornyY());
Console.WriteLine("Prawy gуrny x: " + PobierzPrawyGornyX());
Console.WriteLine("Prawy gуrny y: " + PobierzPrawyGornyY());
Console.WriteLine("Lewy dolny x: " + PobierzLewyDolnyX());
Console.WriteLine("Lewy dolny y: " + PobierzLewyDolnyY());
Console.WriteLine("Prawy dolny x: " + PobierzPrawyDolnyX());
Console.WriteLine("Prawy dolny y: " + PobierzPrawyDolnyY());
}
bool sprawdzProstokat()
{
if( (PobierzLewyGornyX() != PobierzLewyDolnyX()) ||
(PobierzPrawyGornyX() != PobierzPrawyDolnyX()) ||
(PobierzLewyGornyY() != PobierzPrawyGornyY()) ||
(PobierzLewyDolnyY() != PobierzPrawyDolnyY()) ){
return false;
}
else return true;
}
}
Argumenty i przeciążanie metod
Ćwiczenie 15.1
using System;
class Punkt
{
int x;
int y;
int PobierzX()
{
return x;
}
int PobierzY()
{
return y;
}
void UstawX(int wspX)
{
x = wspX;
}
void UstawY(int wspY)
{
y = wspY;
}
void UstawX(Punkt punkt)
{
x = punkt.x;
}
void UstawY(Punkt punkt)
{
y = punkt.y;
}
void UstawXY(int wspX, int wspY)
{
x = wspX;
y = wspY;
}
void WyswietlWspolrzedne()
{
Console.WriteLine("wspуіrzкdna x = " + x);
Console.WriteLine("wspуіrzкdna y = " + y);
}
public static void Main()
{
Punkt pierwszyPunkt = new Punkt();
Punkt drugiPunkt = new Punkt();
pierwszyPunkt.UstawX(100);
pierwszyPunkt.UstawY(100);
Console.WriteLine("pierwszyPunkt:");
pierwszyPunkt.WyswietlWspolrzedne();
drugiPunkt.UstawXY(200, 200);
Console.WriteLine("\ndrugiPunkt:");
drugiPunkt.WyswietlWspolrzedne();
}
}
Ćwiczenie 15.2
using System;
class Punkt
{
int x;
int y;
int PobierzX()
{
return x;
}
int PobierzY()
{
return y;
}
int UstawX(int wspX)
{
int oldX = x;
x = wspX;
return oldX;
}
int UstawY(int wspY)
{
int oldY = y;
y = wspY;
return oldY;
}
void UstawXY(int wspX, int wspY)
{
x = wspX;
y = wspY;
}
void WyswietlWspolrzedne()
{
Console.WriteLine("wspуіrzкdna x = " + x);
Console.WriteLine("wspуіrzкdna y = " + y);
}
public static void Main()
{
Punkt pierwszyPunkt = new Punkt();
Punkt drugiPunkt = new Punkt();
pierwszyPunkt.UstawX(100);
pierwszyPunkt.UstawY(100);
Console.WriteLine("pierwszyPunkt:");
pierwszyPunkt.WyswietlWspolrzedne();
drugiPunkt.UstawXY(200, 200);
Console.WriteLine("\ndrugiPunkt:");
drugiPunkt.WyswietlWspolrzedne();
}
}
Ćwiczenie 15.3
using System;
class Punkt
{
int x;
int y;
int PobierzX()
{
return x;
}
int PobierzY()
{
return y;
}
int UstawX(int wspX)
{
int oldX = x;
x = wspX;
return oldX;
}
int UstawY(int wspY)
{
int oldY = y;
y = wspY;
return oldY;
}
Punkt UstawXY(Punkt punkt)
{
Punkt oldPunkt = new Punkt();
oldPunkt.x = x;
oldPunkt.y = y;
x = punkt.x;
y = punkt.y;
return oldPunkt;
}
void UstawXY(int wspX, int wspY)
{
x = wspX;
y = wspY;
}
void WyswietlWspolrzedne()
{
Console.WriteLine("wspуіrzкdna x = " + x);
Console.WriteLine("wspуіrzкdna y = " + y);
}
public static void Main()
{
Punkt pierwszyPunkt = new Punkt();
Punkt drugiPunkt = new Punkt();
pierwszyPunkt.UstawX(100);
pierwszyPunkt.UstawY(100);
Console.WriteLine("pierwszyPunkt:");
pierwszyPunkt.WyswietlWspolrzedne();
drugiPunkt.UstawXY(200, 200);
Console.WriteLine("\ndrugiPunkt:");
drugiPunkt.WyswietlWspolrzedne();
}
}
Ćwiczenie 15.4
class Dzialania
{
public int wynik;
public void Dodaj(int arg1, int arg2)
{
wynik = arg1 + arg2;
}
public void Odejmij(int arg1, int arg2)
{
wynik = arg1 - arg2;
}
}
Ćwiczenie 15.5
class Dzialania
{
public int wynik;
public void Dodaj(ref int arg1, int arg2)
{
wynik = arg1;
arg1 = arg1 + arg2;
}
public void Odejmij(ref int arg1, int arg2)
{
wynik = arg1;
arg1 = arg1 + arg2;
}
}
Ćwiczenie 15.6
namespace ns2
{
class Dzialania
{
public int wynik;
public void Dodaj(ref int arg1, int arg2)
{
wynik = arg1;
arg1 = arg1 + arg2;
}
public void Odejmij(ref int arg1, int arg2)
{
wynik = arg1;
arg1 = arg1 + arg2;
}
}
}
namespace ns1
{
class Dzialania
{
public int wynik;
public void Dodaj(int arg1, int arg2)
{
wynik = arg1 + arg2;
}
public void Odejmij(int arg1, int arg2)
{
wynik = arg1 - arg2;
}
}
}
using System;
public class Program
{
public static void Main(String[] args)
{
Console.WriteLine("Test pierwszej wersji klasy Dzialania.");
ns1.Dzialania d1 = new ns1.Dzialania();
d1.Dodaj(10, 20);
Console.WriteLine("Pole wynik ma wartoњж: " + d1.wynik);
d1.Odejmij(8, 3);
Console.WriteLine("Pole wynik ma wartoњж: " + d1.wynik);
Console.WriteLine("");
Console.WriteLine("Test drugiej wersji klasy Dzialania.");
int liczba1 = 8, liczba2 = 3;
ns2.Dzialania d2 = new ns2.Dzialania();
d2.Dodaj(ref liczba1, liczba2);
Console.WriteLine("Pole wynik ma wartoњж: " + d2.wynik);
Console.WriteLine("Zmienna liczba1 ma wartoњж: " + liczba1);
d2.Odejmij(ref liczba1, liczba2);
Console.WriteLine("Pole wynik ma wartoњж: " + d2.wynik);
Console.WriteLine("Zmienna liczba1 ma wartoњж: " + liczba1);
}
}
23
12