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 |
prbleme pascal
Last Updated: Dec 19 2016 10:46, Started by
boond
, Dec 13 2016 07:45
·
0
#1
Posted 13 December 2016 - 07:45
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
Posted 13 December 2016 - 07:51
Stii sa citesti textul intr-o variabila? Stii sa parcurgi pe litere tot textul? Stii care-i spatiul? Numara.
|
#3
Posted 13 December 2016 - 08:07
var s: string;
x: integer begin writeln('dati textul:'); readln(s); x:=length(s); asa ceva? dar cu spatiul nu inteleg cum sal numar Edited by boond, 13 December 2016 - 08:15. |
#4
Posted 13 December 2016 - 09:21
Trebuie sa desparti textul in cuvinte iar delimitatorul este spatiul.
|
#5
Posted 13 December 2016 - 10:54
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. Edited by boond, 13 December 2016 - 11:07. |
#6
Posted 13 December 2016 - 10:59
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.
Edited by neagu_laurentiu, 13 December 2016 - 11:03. |
#7
Posted 13 December 2016 - 11:22
eu mai sus am scris programul imi arati ce am gresit te rog
|
#8
Posted 13 December 2016 - 11:33
@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. Edited by vladdy99, 13 December 2016 - 11:40. |
#9
Posted 13 December 2016 - 11:33
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.
Edited by neagu_laurentiu, 13 December 2016 - 11:35. |
#10
Posted 13 December 2016 - 11:39
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
Posted 13 December 2016 - 11:40
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
Posted 13 December 2016 - 11:45
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
Posted 13 December 2016 - 11:47
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
Posted 13 December 2016 - 11:59
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 Edited by boond, 13 December 2016 - 12:02. |
#15
Posted 13 December 2016 - 12:10
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. |
|
#17
Posted 13 December 2016 - 12:30
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
Posted 13 December 2016 - 12:36
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! Edited by neagu_laurentiu, 13 December 2016 - 12:38. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users