Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Sfat pentru aprinderea automata a...

Masina de copt paine - pareri

Cum reactivez Google Maps?

Conectare tableta X220la Tv
 Femeile tinere nu mai vor sa munc...

La mulți ani @un_dac!

La multi ani de Sfantul Gheorghe&...

Job - Facultate sau certificare
 Deadpool & Wolverine (2023)

sistem hibrid eoliana + panouri +...

Outlook e muta pe Android

Constructie Mun. Iasi. Casa P+1.
 Cum mai rezolvati cu chiriasii ra...

Tastatura si mouse cu baterie int...

AC Gree duce la palpait de becuri

Sfat / recomandare construire aco...
 

prbleme pascal

- - - - -
  • Please log in to reply
28 replies to this topic

#19
boond

boond

    New Member

  • Grup: Junior Members
  • Posts: 11
  • Înscris: 13.12.2016
Program sir;
var s: string;
  k,x,j,i: integer;
begin
writeln('dati textul:');
readln(s);
x:=length(s);
j:=0;
for i:=1 to x do
begin
if (s[i]<>' ') then
begin
j:=j+1;
end
else
begin
j:=0;
end;
k:=j;
end;
if k>j then writeln('Cel mai lung cuvint ',k)
   else writeln('cel mai lung cuvint ',j);
end.

nu intelec ce sa scriu in else ca sa pot compara in ultimul if

Edited by boond, 13 December 2016 - 12:45.


#20
vladdy99

vladdy99

    Senior Member

  • Grup: Senior Members
  • Posts: 3,034
  • Înscris: 03.05.2006
Ce am iubit la pascal este claritatea codului.

for i:=1 to x do  Pentru i de la 1 pana la x executa
begin    incepe
...
end;   sfarsit

Ce ai pus tu acolo intre incepe si sfarsit e un mister.

Deci tu trabuie sa stochezi lungimea celui mai lung cuvant din text si dupa aia o afisezi.
hai sa ii zicem lungimeaMaxima !

Il initializezi cu 0 in afara structuri repetitive (for in cazul tau) si dupa aia pt lungimea fiecarui cuvant din text il compari cu lungimeaMaxima, si daca e mai mare o atribui variabilei lungimeaMaxima!
La sfarsitul structutii repetitive variabila lungimeaMaxima va avea exact lungimea celui mai luuuuung cuvant.

#21
boond

boond

    New Member

  • Grup: Junior Members
  • Posts: 11
  • Înscris: 13.12.2016
de ce mister?
daca s[i] nu este spatiu lui j i se mai adauga o unitate
dar iata ca mai departe ce sa scriu cind da de spatiu nustiu

#22
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,602
  • Înscris: 30.07.2003
Alege o variabila in care pastrezi maximul. O initializezi cu zero inainte de for. Pe ramura else, inainte de a reseta pe j compara acea variabila cu j si pune in ea doar daca j e mai mare ca acea variabila. Asa ai maximul acolo.

Si pune codul formatat, foloseste tagurile [ c o d e ] ... [ / c o d  e] ca nu intelege nimeni nimic din acel cod.

#23
boond

boond

    New Member

  • Grup: Junior Members
  • Posts: 11
  • Înscris: 13.12.2016
Program sir;
var s: string;
k,x,j,i: integer;
begin
writeln('dati textul:');
readln(s);
x:=length(s);
j:=0;
k:=0;
for i:=1 to x do
begin
if (s[i]<>' ') then j:=j+1
else j:=0;
k:=j;
end;
if k>j then writeln('Cel mai lung cuvint ',k)
else writeln('cel mai lung cuvint ',j);
end.

eu cam asta am intelesca trebuie de facut
Posted Image Posted Image Posted Image

#24
vladdy99

vladdy99

    Senior Member

  • Grup: Senior Members
  • Posts: 3,034
  • Înscris: 03.05.2006
Si unde e mareata lungimeaMaxima de care iti tot vorbim noi ?!?!
Aia pe care o conpari cu lungimea fiecarui cuvant inainte sa o resetezi!

ia incearca sa redenumesti i,j,k,x in cuvinte cu inteles. Cred ca o sa te ajute mult!

#25
AllNamesIHaveTriedHaveBeenTaken

AllNamesIHaveTriedHaveBeenTaken

    Junior Member

  • Grup: Members
  • Posts: 217
  • Înscris: 10.07.2005
Pastreaza o variabila in afara for-ului in care tii cea mai mare lungime obtinuta pana la un moment dat, sa-i spunem lungime maxima.
Acolo unde dai de spatiu, verifica daca lungimea curenta e mai mare decat cea maxima, caz in care o inlocuiesti pe cea maxima cu aceasta.

Si da, sugestia cu denumirea variabilelor este de departe una salutara.

Edited by AllNamesIHaveTriedHaveBeenTaken, 13 December 2016 - 13:43.


#26
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,602
  • Înscris: 30.07.2003

View Postboond, on 13 decembrie 2016 - 13:24, said:

eu cam asta am intelesca trebuie de facut
Ia mai pitroceste un pic la urmatoarea secventa:
if(k > j) then
begin
  k:=j;
end


Edited by neagu_laurentiu, 13 December 2016 - 14:41.


#27
vladdy99

vladdy99

    Senior Member

  • Grup: Senior Members
  • Posts: 3,034
  • Înscris: 03.05.2006
@neagu_laurentiu Posted Image

#28
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,602
  • Înscris: 30.07.2003
Nu degeaba i-am zis sa analizeze.

#29
Spring76new

Spring76new

    Member

  • Grup: Members
  • Posts: 761
  • Înscris: 17.04.2016
Programarea nu e pentru toată lumea. Nu vă mai chinuiți, nu vrea să studieze! Probabil și profesorul e slab. Când eram de vârsta lui, făceam din proprie inițiativă programe de zece ori mai complicate decât cele care ni se dădeau ca temă și nu aveam Internetul la dispoziție, aveam doar cartea de tehnici de programare a lui Tudor Sorin și niște cărți albastre care explicau instrucțiunile de bază Pascal. Și mult timp alocat învățatului în loc de mers în club, bineînțeles.
-----
@boond
Bănuiesc că ați învățat să lucrați cu funcțiile și procedurile de manipulare a șirurilor (adică "length", "pos", "copy", "delete").
Dacă variabila string "s" este textul iar variabila string "s1" este intotdeauna primul cuvant al textului, fă un ciclu cu "repeat" (sau "while"), măsoară s1 de fiecare dată (cu "copy" și "pos"), stochează lungimea lui "s1" într-un integer (să-i zicem "lungime_maxima"), taie "s1" din "s" (cu procedura de șiruri "delete") și repetă ciclul cu "s" până ramâi fără spații (presupunând că textul "s" are numai litere și spații). La fiecare repetare a ciclului testează dacă "lungime_maxima" se modifică.

Edited by Spring76new, 19 December 2016 - 10:50.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate