Skocz do zawartości

gość123456789

Użytkownicy
  • Zawartość

    4
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralny

O gość123456789

  • Ranga
    Nowy na forum
  1. gość123456789

    Przetwarzanie danych w pliku rekordowym

    pomoże ktoś??
  2. gość123456789

    Przetwarzanie danych w pliku rekordowym

    Witam, mam zrobić na informatykę taki program i mam z tym problem. W pliku rekordowym o nazwie 'dane.dat' umieszczono ciąg liczb całkowitych których wartości w założeniach miały być kolejno: większe i mniejsze od zera (równe zeru potraktować jak mniejsze). Napisać procedure lub funkcję z których: a) pierwsza, sprawdzi czy rzeczywiście tak jest, b) druga, przepisze do n elementowej tablicy A liczby dodatnie (n należy podać jako argument, proces przerwać po znalezieniu n-tego elementu). Napisałem coś takiego i procedura z podpunktu b działa ale z funkcją z podpunktu a mam problem. A mianowicie funkcja działa dobrze jeśli wprowadzam parzystą ilość liczb, a dla nieparzystej ilości nie chce działać. Pisałem ten program w Lazarusie IDE v1.6. Funkcja nazywa się Sprawdź. Pomoże ktoś?? program zestaw1_poprawka3; uses Crt; type Tplik=file of integer; Ttab=array[1..100] of integer; var p:Tplik; A:Ttab; n:byte; {...........} procedure Wprowadz(var p:Tplik; n:integer); var x:integer; i:integer; begin Rewrite(p); if n>=100 then exit; for i:=1 to n do begin write(i,' liczba: '); readln(x); write(p,x); end; Close(p); end; {............} function Sprawdz(var p:Tplik):boolean; var x,y:integer; begin Reset(p); if not eof(p) then read(p,x); while not eof(p) do begin read(p,y); if ((x>0) and (y<=0)) or ((x<=0) and (y>0)) then Sprawdz:=True else Sprawdz:=False; end; Close(p); end; {..........} procedure Wyswietl(var p:Tplik); var x:integer; begin Reset(p); while not eof(p) do begin read(p,x); writeln(x:3); end; Close(p); end; {................} procedure Przepisz(var p:Tplik; var A:Ttab; var n:byte); var x:integer; begin Reset(p); n:=0; while not eof(p) do begin if n>=100 then break; read(p,x); if x>0 then begin n:=n+1; A[n]:=x; end; end; Close(p); end; {................} procedure Wyswietl_tab(var n:byte; var A:Ttab); var i:integer; begin for i:=1 to n do write(A[i]:5,' '); end; {...........} begin ClrScr; write('Ile bedzie liczb: '); readln(n); Assign(p,'dane.dat'); Wprowadz(p,n); writeln; Sprawdz(p); writeln(Sprawdz(p)); Wyswietl(p); writeln; Przepisz(p,A,n); writeln('Przepisana tablica: '); Wyswietl_tab(n,A); Readkey; end.
  3. gość123456789

    problem z zadaniem

    Ok tylko że nie wiem jak to zrobić ponieważ jestem bardzo początkujący. Próbowałem już na różne mi znane sposoby a program i tak nie działa jak powinien. Mógłby mi ktoś to rozpisać?
  4. gość123456789

    problem z zadaniem

    Witam, dopiero zaczynam programować i dostałem zadanie do zrobienia tylko nie wiem jak je rozwiązać. Mam takie zadanie: Dane jest zadanie (ciąg znaków zakończony znakiem .). Napisać program wyznaczający liczbę wystąpień liter ch. Zrobiłem tak żeby pokazywało liczbę wystąpień jednej litery ale nie mogę ogarnąć tak żeby liczyło te ch. Zadanie zrobiłem w programie Free Pascal IDE. Wiem że pewnie dla większości to zadanie wydaje się banalne ale ja nie mogę tego ogarnąć. Pomoże ktoś? program znaki; uses crt; var z:char; k:word; begin k:=0; writeln('Wprowadzaj znaki. Kropka-koniec.'); z:=readkey; write(z); while z<>'.' do begin if z='a' then k:=k+1; z:=readkey; write(z); end; writeln; writeln('Liczba wystapien litery a= ',k); readln; end.
×