Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
imprimanta laser capacitate medie...

Parere garsoniera Tineretului

Sfaturi achizitie boxe hi-fi pent...

Baterie externa solara vs baterie...
 Sapa peste pardosea veche

recomandare placa captura video

Trecere apartament pe numele meu

Seria 3 - E90 / 91
 LakeSide 11 Straulesti

Sanse refinantare

arii

Sapa peste pardoseala
 Smart phone pentru auz deficitar

Manager transport marfa. Pareri. ...

BIOS F.24 pentru HP Pavilion g7-2...

Meta Quest 3 512 gb
 

prbleme pascal

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
28 răspunsuri în acest subiect

#1
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 11
  • Înscris: 13.12.2016
Am nevoie de ajutor. Nu inteleg cum se fac problemele de acest gen.
De la tastatură se introduce un text.Elaborați un program care va afișa pe ecran lungimea celui mai lung cuvînt.

#2
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
Stii sa citesti textul intr-o variabila? Stii sa parcurgi pe litere tot textul? Stii care-i spatiul? Numara.

#3
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 11
  • Înscris: 13.12.2016
var s: string;
x: integer
begin
writeln('dati textul:');
readln(s);
x:=length(s);
asa ceva?
dar cu spatiul nu inteleg cum sal numarPosted Image

Editat de boond, 13 decembrie 2016 - 08:15.


#4
csgabe

csgabe

    Active Member

  • Grup: Members
  • Mesaje: 1.525
  • Înscris: 08.12.2009
Trebuie sa desparti textul in cuvinte iar delimitatorul este spatiul.

#5
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 11
  • Înscris: 13.12.2016
imi puteti da un exemplu cam cum se face va rog mult
Iata ce am facut eu

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
if (s[i]<>' ') then j:=j+1
else j:=0;
k:=j;
if k>j then writeln('Cel mai lung cuvint ',k)
   else writeln('cel mai lung cuvint',j);
end.

Editat de boond, 13 decembrie 2016 - 11:07.


#6
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
Avand sirul in variabila s, poti sa vezi/testezi pe fiecare caracter din string (adica pe s[indice]). Cum vad ca ai aflat si lungimea textului cu pricina atunci cu un for poti parcurge tot textul, caracter cu caracter si vezi din cuvinte e mai lung. Spatiul e caracterul intre apostrof (' '), acesta (pe langa alte semne ortografice) iti spune ca s-a terminat un cuvant din text.

Editat de neagu_laurentiu, 13 decembrie 2016 - 11:03.


#7
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 11
  • Înscris: 13.12.2016
eu mai sus am scris programul imi arati ce am gresit te rog

#8
vladdy99

vladdy99

    Senior Member

  • Grup: Senior Members
  • Mesaje: 3.034
  • Înscris: 03.05.2006
@neagu_laurentiu: Jos palaria pentru rabdarea de a explica!

@boond: Nu iti face nimeni temele. Ai primit o explicatie cat se poate de clara! Parcurgi textul s caracter cu caracter (intr-o structura repetitiva) si compari fiecare dintre caractere cu spatiul.
Alternativ poti compara codul ascii al fiecarui caracter cu codul ascii(32) pt spatiu.

Editat de vladdy99, 13 decembrie 2016 - 11:40.


#9
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
Pune begin si end la blocul din for si if sa vezi si tu mai clar ce se executa, lasa acum ca stie el o line sau nu. Si ai sa vezi unde gresesti ori ce mai trebuie. Nu uita ca lugimea maxima poate fi pe la jumatatea propozitiei, asa ca testeaza pe j curent cu o lugime pastrata anterior ca fiind maxima (k sa zicem) si mai suprascrii doar daca ai o lugime mai mare.

Editat de neagu_laurentiu, 13 decembrie 2016 - 11:35.


#10
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 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;
begin
for i:=1 to x do
if (s[i]<>' ') then j:=j+1
else j:=0;
end;
k:=j;
if k>j then writeln('Cel mai lung cuvint ',k)
   else writeln('cel mai lung cuvint',j);
end.

eu va multumesc mult pentru rabdare si intelegere dar vreau si eu sa inteleg aceste tipuri de probleme

#11
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
Pai inainte de for l-ai pus fara sa analizezi prea mult daca-i util ori nu! Delimiteaza for-ul si if-ul, corespunzator, nu ca acum.

#12
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 11
  • Înscris: 13.12.2016
vladdy99 eu nu vreau sa imi faca cineva temele eu vreau sa inteleg ce fac si cum fac

iti multumesc pentru rabdare dar nu inteleg cum sa delimitez for -ul si if-ul

#13
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
Vezi in documentatia limbajului cand nu stii ceva
if boolean_condition then
begin
  statement_one;
  statement_two;
end
else
begin
  statement_three;
  statement_four;
end;

#14
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 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
if (s[i]<>' ') then
  begin
       j:=j+1;
       k:=j;
   end
else
    begin
    j:=0;
    end;
if k>j then writeln('Cel mai lung cuvint ',k)
   else writeln('cel mai lung cuvint',j);
end.

din cite inteleg eu o careva conditie la esle trebuie sa dau dar nu o inteleg care

Editat de boond, 13 decembrie 2016 - 12:02.


#15
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
Pune si la for, sa stii mai clar (tu, calculatorul stie) de unde si pana unde tine.

k-ul ala din if e scris de fiecare data, nu pastrezi in el maximul. Pune o conditie, testeaza cand se termina cuvantul.

#16
boond

boond

    New Member

  • Grup: Junior Members
  • Mesaje: 11
  • Înscris: 13.12.2016
nu intelegPosted Image

#17
rickysyv

rickysyv

    Senior Member

  • Grup: Senior Members
  • Mesaje: 2.620
  • Înscris: 08.03.2008
Salvezi lungimea cuvântului in k doar dacă e mai mare decât cea salvată anterior. Mai simplu de atât nu se poate explica. Dacă nici așa nu înțelegi atunci nu-ți mai bate capul, oricum vei lua un 5 de trecere, nu ramâne nimeni repetent pentru Pascal...

#18
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Mesaje: 40.632
  • Înscris: 30.07.2003
for ...
begin
...
end;

Iar ca sa intelegi logica de acolo, ruleaza in minte linie cu linie, pune pe hartie valorile fiecarei variabile la ficare pas, analizeaza, trage concluzii si corectezi codul. Sau intreaba exact ce nu stii la pasul cutare, cand ai valorile cutare etc. Ideea e ca tu sa intelegi, nu sa-ti dam codul cap coada si maine ai uitat totul!

Editat de neagu_laurentiu, 13 decembrie 2016 - 12:38.


Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

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