mastka utworzono 25 maja 2013 utworzono 25 maja 2013 Witam, jestem zielona w programowaniu, otrzymalam schemat blokowy i z niego musze napisac program, jest to zadanie z egzaminu zawodowego, jednak nie potrafie programować i prosiłabym jakby ktoś potrafił to mógłby napisać. ;) wiem ze trzeba uzyc tablic. z góry dziekuje.;* schemat w zalaczniku,
leggo komentarz 25 maja 2013 komentarz 25 maja 2013 Całego programu Ci nie napiszę, ale jest on na tyle prosty, że przy odrobinie wysiłku dasz sobie z nim radę. Tutaj znajdziesz krótki kurs Psacal-a. Do napisania tego programu wystarczą Ci lekcje 1-3, 5-7 i 11. Gdyby pojawiły się jakieś problemy podczas pisania chętnie pomogę.
mastka komentarz 25 maja 2013 Autor komentarz 25 maja 2013 a nie mógłbyś mnie jednak wyręczyc? normalnie to poprobowalabym sama, ale nie moge u siebie odpalic turbo pascala, ani normalnie, ani przez dosboxa, a w notatniku nie bede mogla sprawdzic czy cos zle, wiec jakbyś mógł napisać tu gotowy kod ;)
leggo komentarz 25 maja 2013 komentarz 25 maja 2013 nie moge u siebie odpalic turbo pascala W czy konkretnie tkwi problem?
mastka komentarz 25 maja 2013 Autor komentarz 25 maja 2013 czarne okno, potem wylacza sie i wyskakuje: 16-bitowy podsystem MS-DOS --------------------------- Turbo Pascal 7.0 NTVDM CPU: napotkano niedozwoloną instrukcję. CS:0000 IP:0077 OP:f0 37 05 19 02 Wybierz przycisk „Zamknij”, aby zakończyć działanie aplikacji. --------------------------- Zamknij Ignoruj ---------------------------
Los_Emilos komentarz 25 maja 2013 komentarz 25 maja 2013 http://ideone.com/ na tej stronie możesz sprawdzić działanie programu.
mastka komentarz 25 maja 2013 Autor komentarz 25 maja 2013 wiec doczekam sie tego, ze ktos wysle mi gotowy kod programu? probuje juz z 20 raz i ciagle cos nie działa;/
leggo komentarz 26 maja 2013 komentarz 26 maja 2013 Na temat błędu, który u Ciebie występuje znajdziesz bardzo dużo w google, nie ma sensu tego tutaj przepisywać. Jeśli nie chcesz się z tym bawić zawsze możesz użyć innego programu lub (najprościej i najwygodniej) skorzystać ze strony, którą podał [b]Los_Emilos[/b]. doczekam sie tego, ze ktos wysle mi gotowy kod programu? Dopóki Ty nie podasz choć fragmentu kodu, wątpię. Widziałaś regulamin umieszczony nad działem?
mastka komentarz 26 maja 2013 Autor komentarz 26 maja 2013 (edytowane) ok, wlasnie znow probuje, program ma pobierać od użytkownika zmienna i czy n? czy moze jeszcze inna zmienna trzeba dodac?
leggo komentarz 26 maja 2013 komentarz 26 maja 2013 Zmienne [b]i[/b], [b]n[/b] oraz [b]suma[/b] mają na samym początku mieć przypisaną wartość 0, więc ich nie pobierasz od użytkownika. Wprawdzie nie jest to zaznaczone na schemacie, ale domyślam się że od użytkownika trzeba pobrać zawartość tablicy [b]T[/b]. W tym celu musisz utworzyć sobie pętlę powtarzającą się od 1 do 10 i w niej pobierać liczby do kolejnych komórek.
leggo komentarz 26 maja 2013 komentarz 26 maja 2013 Wygląda na to, że tablica ma mieć 10 elementów, czyli: T :array[1..10] of integer; 1
mastka komentarz 26 maja 2013 Autor komentarz 26 maja 2013 a jezeli tutaj zamiast T wpisze ttab, a potem w deklarowaniu zmiennych T:ttab; to tez zadziała? pytam bo mam nauczycielke, ktora uczy... raczej nie uczy tylko kaze przepisac program, i praktycznie zrobić tak jak ona chce, a nie na swój sposób.
leggo komentarz 26 maja 2013 komentarz 26 maja 2013 To co podałem to jest już właśnie deklarowanie zmiennych (to co ma być wpisane pod [b]var[/b]). [i]T[/i] możesz zastąpić dowolną nazwą.
rafalluz komentarz 26 maja 2013 komentarz 26 maja 2013 (edytowane) a jezeli tutaj zamiast T wpisze ttab, a potem w deklarowaniu zmiennych T:ttab; to tez zadziała? Wtedy musiałoby być: ttab :array[1..10] of integer; i w programie odnosisz się np. do ttab[1]. Jakbyś chciał T:ttab, to musiałbyś najpierw zdefiniować ttab jako typ: type ttab = array[1..10] of integer; i potem w programie odnosiłbyś się np. do T[1].
mastka komentarz 1 czerwca 2013 Autor komentarz 1 czerwca 2013 witam ponownie, wiem ze minelo troszke czasu ale mialam wolne, pokombinowalam, i zdaje sie ze działa, prosze o sprawdzenie jedynie ostatniej procedury (srednia) program matura; uses crt; type tablica=array[1..10] of integer; var T :tablica; procedure wypelnij(var T:tablica); var i:integer; begin for i:=1 to 10 do begin writeln('podaj ',i,' liczbe'); readln(T[i]); end; end; procedure wypisuj(var T:tablica); var i:integer; begin for i:=1 to 10 do writeln(i:2,' ',T[i]:4); end; procedure srednia(var T:tablica); var i,n,sr,sm:integer; begin sm:=0; n:=0; i:=1; begin while i<=10 do if T[i]>0 then begin n:=n+1; i:=i+1 end else i:=i+1; for i:=1 to 10 do sm:=sm+T[i]; end; sr:=sm div n; writeln('srednia wynosi ',sr) end; begin clrscr; wypelnij(T); wypisuj(T); srednia(T); readln; end.
leggo komentarz 1 czerwca 2013 komentarz 1 czerwca 2013 W tej procedurze, do zliczenia sumy wystarczy Ci jedna pętla (while lub until). Wewnątrz pętli najpierw daj if-a, jeśli warunek będzie spełniony powiększ [b]n[/b] oraz [b]suma[/b]. Po if-ie (niezależnie od tego czy warunek będzie spełniony, czy nie) powiększ [b]i[/b] (else nie jest potrzebne). Do liczenia średniej użyj dzielenia z resztą ([i]/[/i]), a nie całkowitego ([i]div[/i]).
mastka komentarz 2 czerwca 2013 Autor komentarz 2 czerwca 2013 (edytowane) procedure srednia(var T:tablica); var i,n,sr,sm:integer; begin sm:=0; n:=0; i:=1; begin while i<=10 do if T[i]>0 then begin n:=n+1; sm:=sm+t[i]; end; i:=i+1; end; sr:=sm mod n; writeln('srednia wynosi ',sr) end; ? pozmieniałam i przestał działac;p możesz wskazać błąd? exit code = 201
Rekomendowana odpowiedź leggo komentarz 2 czerwca 2013 Rekomendowana odpowiedź komentarz 2 czerwca 2013 [b]begin[/b] powinno być zaraz po [b]while[/b], a nie przed: procedure srednia(var T:tablica); var i,n,sr,sm:integer; begin sm:=0; n:=0; i:=1; while i<=10 do begin if T[i]>0 then begin n:=n+1; sm:=sm+T[i]; end; i:=i+1; end; sr:=sm div n; writeln('srednia wynosi ',sr) end; [b]mod[/b] to reszta z dzielenia całkowitego. Do liczenie średniej użyj [b]div[/b] (dzielenie całkowite) lub [b]/[/b] (jednak tutaj wynik będzie liczbą zmiennoprzecinkową, więc wyniku nie możesz zapisać do zmiennej typu integer). 1
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.