Skocz do zawartości
Zapraszamy do udziału w tradycyjnym plebiscycie CMF Awards, edycji 2017! Nominacje w poniższym dziale można składać do 14.01 do godziny 23:59.
CMF Awards 2017

Rekomendowane odpowiedzi

Co do dzielenia AFAIR:

 

div - dzielenie całkowite, czyli '6 div 4' da Ci 1 (czyli część całkowitą)

mod - reszta z dzielenia, czyli '6 mod 4' da Ci 2 (czyli licznik, 4 to mianownik)

Udostępnij tego posta


Odnośnik do posta

Chyba jednak nie o to mi chodziło :>

 

No więc skombinowałem takie coś:

program ulamki;
uses crt;
var a,b,c,d:integer;
e,f,g,h,i,j,k,l:real;
begin
textcolor(red);
textbackground(blue);
clrscr;
write('Podaj pierwszy licznik:');
readln(a);
write('Podaj pierwszy mianownik:');
readln(b);
write('Podaj drugi licznki:');
readln(c);
write('Podaj drugi mianownik:');
readln(d);
if (b=0) or (d=0) then write ('Mianownik nie moľe by† zerem.')
else begin
e:=a/b;
f:=c/d;
i:=e+f;
j:=e-f;
k:=e*f;
if c=0 then writeln ('Dzielenie nie bedzie moľliwe.')
else
l:=e/f;
writeln('Dodawanie - wpisz 1');
writeln('Odejmowanie - wpisz 2');
writeln('Mnoľenie - wpisz 3');
writeln('Dzielenie - wpisz 4');
write('Jakie dziaˆanie chcesz wykona†?');
readln(g);

	if (g=1) then write ('Suma wynosi:',i:8:3)
else
	if (g=2) then write ('R˘ľnica wynosi:',j:8:3)
else
	if (g=3) then write ('Iloczyn wynosi:',k:8:3)
else
	if (g=4) and (c=0) then write ('Nie moľna dzieli† przez zero.')
	else
	write('Iloraz wynosi:',l:8:3);

end;
readln;
end.

I teraz mam pytanie: jak podać wyniki w postaci ułamków zwykłych?

Udostępnij tego posta


Odnośnik do posta

Przede wszystkim - wspólny mianownik najłatwiej uzyskać mnożąc przez siebie mianowniki :]

 

czyli np

w_m:=b*d

 

Mnożymy także liczniki przez mianownik drugiego ułamka:

l1:=a*d; l2:=b*c

 

Dodawanie i odejmowanie masz proste (działamy tylko na licznikach, bo mianownik jest wspólny ;)):

 dodawanie:=l1+l2; 
odejmowanie:=l1-l2;

 

Mnożenie (licznik*licznik, mianownik*mianownik):

mnozenie_l:=a*c;
mnozenie_m:=b*d;

 

Dzielenie ułamków to? Mnożenie przez odwrotność? ;)

 

Ułamki wg Twoich zmiennych to a/b i c/d, więc wynikiem dzielenia będzie a*d/b*c. Robisz te dwie operacje i deklarujesz dwie zmienne dla licznika i dla mianownika i pod licznik podstawiasz a*d, a pod mianownik b*c.

dzielenie_l:=a*d;
dzielenie_m:=b*c;

 

Przedstawiasz w wynikach w ten sposób:

if (g=1) then write ('Suma wynosi:',dodawanie,' / ',w_m);

Itd.

Tyle filozofii.

Udostępnij tego posta


Odnośnik do posta

Dzięki :*

 

Dopiero zaczynam przygodę z Pascalem, więc proszę nie śmiejcie się ;)

Udostępnij tego posta


Odnośnik do posta

Nikt się nie śmieje ;)

 

Wiesz, jak Ci się chce, to możesz jeszcze skracanie ułamków, czy wyodrębnienie całości zaimplementować, bo ja poszedłem po najmniejszej linii oporu ;)

Udostępnij tego posta


Odnośnik do posta

Longer ten pascal to edukacja w szkole/uczelni czy z własnej woli ? Bo jeśli to drugie to sobie odpuść i przejdź na coś obiektowego - C++/Java. Ewentualnie jako rozgrzewkę można się zabrać za czyste C.

Udostępnij tego posta


Odnośnik do posta

W szkole. Z własnej woli w życiu za programowanie bym się nie brał, bo wiem, że studia informatyczne są nie dla mnie (choć na początku myślałem inaczej :P ) :] Zresztą nauczyciel informatyki powiedział, że trzeba zacząć od pascala, bo na uczelniach niby tego wymagają. Niedługo mamy przesiadać się na C++ :)

Udostępnij tego posta


Odnośnik do posta
W szkole. Z własnej woli w życiu za programowanie bym się nie brał, bo wiem, że studia informatyczne są nie dla mnie (choć na początku myślałem inaczej :P ) :] Zresztą nauczyciel informatyki powiedział, że trzeba zacząć od pascala, bo na uczelniach niby tego wymagają. Niedługo mamy przesiadać się na C++ :)

raczej juz nie wymagaja.

 

na wiekszosc uczelni poszli po rozum do glowy i zaczynaja od razu od C++/Java zamiast meczyc Delphi - ktore swoja droga nie jest zlym jezykiem, ale niestety podbudowanie z Pascala robi swoje.

Udostępnij tego posta


Odnośnik do posta
W szkole. Z własnej woli w życiu za programowanie bym się nie brał, bo wiem, że studia informatyczne są nie dla mnie (choć na początku myślałem inaczej :P ) :] Zresztą nauczyciel informatyki powiedział, że trzeba zacząć od pascala, bo na uczelniach niby tego wymagają. Niedługo mamy przesiadać się na C++ :)

raczej juz nie wymagaja.

 

na wiekszosc uczelni poszli po rozum do glowy i zaczynaja od razu od C++/Java zamiast meczyc Delphi - ktore swoja droga nie jest zlym jezykiem, ale niestety podbudowanie z Pascala robi swoje.

na dobrych uczelniach dobrzy wykładowcy / ćwiczeniowcy już od wielu lat prowadzą zajęcia tylko w oparciu o obiektowe języki programowania; w poprzednich latach był to raczej c/c++, a teraz dopiero w ostatnich latach częściej sięga się po javę, która bardzo szybko się rozwija

Udostępnij tego posta


Odnośnik do posta

U mnie na uczelni obecny I rok jest pierwszym, który już nie ma pascala. Dali im C.

Udostępnij tego posta


Odnośnik do posta
na dobrych uczelniach dobrzy wykładowcy / ćwiczeniowcy już od wielu lat prowadzą zajęcia tylko w oparciu o obiektowe języki programowania; w poprzednich latach był to raczej c/c++, a teraz dopiero w ostatnich latach częściej sięga się po javę, która bardzo szybko się rozwija

Delphi jest obiektowe - z Pascalowa skladnia.

Udostępnij tego posta


Odnośnik do posta

Nawet gdyby Delphi wykladali to juz byloby cos, bo Delphi w sumie jest ok :) Tzn. ma swoje plusy - latwiej stworzyc cos konkretnego, dzialajacego niz np. w Javie. Wiec w sumie to nawet sie nie dziwie, ze na pewnych uczelniach nie ma np. Javy bo to tak naprawde olbrzymi sektor. Javy sie uczy kilka lat i to pracujac dzien w dzien po 8 godzin, wiec na uczelni poza praktycznie podstawami (zwiazanymi pewnie z obiektowoscia), ciezko to jakos konkretniej ruszyc.

 

No ale Pascal to juz zdecydowanie nie bardzo...

Udostępnij tego posta


Odnośnik do posta

Obecnie na pierwszym roku u mnie mają C#. Ja leciałem starym programem nauczania, więc komputer i kompilator widziałem dopiero na trzecim roku :roll: Zdaje się, że potem pierwszaki będą mieć Javę, więc już jakaś podbudowa będzie. To oznaczałoby, że nieśmiertelne zajęcia z ANSI C z dr Kędzierskim odejdą w zapomnienie (powiem tylko, że i tak C tam było mało). W końcu...

 

Swoją drogą nie ważne w czym będą programować, ważne by nauczyli się podstaw obiektówki i programowania. Na resztę przyjdzie czas. Czy to we własnym zakresie, czy w pracy. Takie są, chcąc niechcąc, realia.

Udostępnij tego posta


Odnośnik do posta

Zabawy z pascalem ciąg dalszy. Tym razem moje zadania polega na zbudowaniu z '*' trójkąta (na wzór tego programu). Pomoże ktoś? :)

Udostępnij tego posta


Odnośnik do posta

Panowie potrzebuje cos do ... rysowania grafow!!

Tak zebym mogl sobie zaznaczyc wierzcholi, polaczenia miedzy nimi, oraz wagi tych drog i wagi wierzcholkow, oraz zeby na podstawie tego tworzylo mi jakas tablice polaczen i tablice wag wierzcholkow. Sam raczej nie mam na tyle wiedzy zeby samemu takie cos napisac:/ a potrzebuje to na b. szybko do szkoly:/

Udostępnij tego posta


Odnośnik do posta

xemi, jak bardzo skomplikowane? Bo jak mało, to masz Worda, to możesz wykorzystać autokształty i łączniki. Wtedy przynajmniej przy przestawianiu kwadracików strzałki się same dopasowują.

Udostępnij tego posta


Odnośnik do posta
xemi, jak bardzo skomplikowane? Bo jak mało, to masz Worda, to możesz wykorzystać autokształty i łączniki. Wtedy przynajmniej przy przestawianiu kwadracików strzałki się same dopasowują.

wwosik, dzieki, ale nie o to chodzi, takie cos opodobne to bym we flashu moze jakos juz wykombinowal.

Chodzi o to ze jak narysuje juz ten graf (wierzcholi, polaczenia miedzy nimi), dodam wagi dla tego, to ma mi program z tego wygenerowac tablice z wartosciami polaczen miedzy wierzcholkami, oraz tablice wag wierzcholkow. Z tej tablicy potem mam algorytmem policzyc njkrotsza droge miedzy wybranymi wierzcholkami. Algorytm sobie napisalem, ale tablice musze sam do niego wprowadzac recznie:/

Udostępnij tego posta


Odnośnik do posta

ok :) niestety, nie dysponuję niczym takim :(

 

na marginesie - wyobrażam sobie, że w Wordzie jest to nadal możliwe, tylko wymaga trochę zabawy z Visual Basikiem ;)

Udostępnij tego posta


Odnośnik do posta

rzecz zapewne trywialna, ale nie umiem sobie z nią poradzić :/ mianowicie muszę zrobić transponowanie macierzy kwadratowej

 

pierwsza idea była taka, żeby po prostu zamieniać wartość pola tablicy w stylu: tablica[x][y] = tablica[y][x] przy użyciu zmiennej pomocniczej, ale to nie chce działać :/

 

void transponowanieMacierzy()
{
int p=0;
	for (int i=0; i<rozmiar; i++)
		for (int j=0; j<rozmiar; j++)
			{
				p = tablica[i][j];
				tablica[i][j] = tablica[j][i];
				tablica[j][i] = p;
			}
 }

 

może jakaś podpowiedź? :)

Udostępnij tego posta


Odnośnik do posta

Wydaje mi się, że działa Ci to źle dlatego, że robisz to dla całej macierzy, czyli zamieniasz ze sobą dane pola dwukrotnie, co w efekcie sprawia, że wracają do swoich pierwotnych stanów :>

Wystarczy to wykonać dla połowy elementów znad lub spod głównej przekątnej, np.

 

void transponowanieMacierzy()
{
int p=0;
	for (int i=0; i<rozmiar; i++)
		for (int j=0; j<i; j++) // tu jedyna modyfikacja - j<i zamiast j<rozmiar
			{
				p = tablica[i][j];
				tablica[i][j] = tablica[j][i];
				tablica[j][i] = p;
			}
 }

Udostępnij tego posta


Odnośnik do posta

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×