Народ написал прогу на Паскале, а теперь препод требует тоже самое написать на Си =(. А я не очень то в нем шарю... мб поможете? текст проги прилагаю!!
procedure chtenie; var i:integer; begin for i:=1 to length(st) do if st[i] in znaki then st[i]:=' '; while st[length(st)]=' ' do delete(st,length(st),1); while st<>'' do begin while st[1]=' ' do delete(st,1,1); if pos(' ',st)>0 then begin st1:=copy(st,1,pos(' ',st)-1); delete(st,1,pos(' ',st)); q:=length(st1); if q>k then k:=q; a^[q].s:=a^[q].s+st1; a^[q].m:=q; end else begin q:=length(st); if q>k then k:=q; a^[q].s:=a^[q].s+st; a^[q].m:=q; st:=''; end; end; end; procedure graf; var gm,gd,kx,ky,i: integer; str2:string; begin gd:=detect; initgraph(gd,gm,'c:\bin'); line(20,5,20,480); line(20,5,23,10); line(20,5,17,10); line(0,300,620,300); line(620,300,615,303); line(620,300,615,297); for i:=1 to k do if a^[i].n<>0 then begin ky:=250 div a^[i].n; l:=i; break; end; kx:=600 div (k+1); for i:=1 to a^[l].n do begin line(17,300-ky*i,20,300-ky*i); str(i,st); outtextxy(5,297-ky*i,st); end; t:=1; for i:=1 to k do if a^[i].s<>'' then begin setfillstyle(1,i+1); bar(10+t*kx,299-a^[i].n*ky,30+t*kx,299); str(a^[i].m,str2); outtextxy(5+t*kx,310,str2); t:=t+1; end; readkey; closegraph; end;
begin clrscr; assign(f,'pr12.txt'); reset(f); assign(f1,'pr12_res.txt'); rewrite(f1); getmem(a,250*sizeof(slovo)); for i:=1 to 30 do a^[i].s:=''; k:=1; st2:=''; writeln('Vvedite 1 dlya raboty s tekstom iz faila!!'); writeln('Vvedite 2 dlya vvoda teksta vruchnuu!!'); readln(t); clrscr; if t=1 then while not eof(f) do begin readln(f,st); chtenie; end else if t=2 then begin readln(st); chtenie; end; l:=0; for i:=1 to k do if a^[i].m>0 then l:=l+(length(a^[i].s) div a^[i].m); for i:=1 to k do if a^[i].m>0 then a^[i].n:=round(((length(a^[i].s)/a^[i].m)/l)*100);
for i:=1 to k do begin l:=1; while l<=length(a^[i].s) do begin st2:=st2+copy(a^[i].s,l,a^[i].m)+' '; l:=l+a^[i].m; end; a^[i].s:=st2; st2:=''; end;
i:=0; while i<=k do begin j:=1; while j<=k-2-i do begin if a^[j].n < a^[j+1].n then begin sl:=a^[j]; a^[j]:=a^[j+1]; a^[j+1]:=sl; end; j:=j+1 end; i:=i+1; end;
for i:=1 to k do if a^[i].s<>'' then writeln(a^[i].s); readkey; clrscr;
for i:=1 to k do if a^[i].s<>'' then begin write('chislo bukv:',a^[i].m,' '); write('slov:',a^[i].n); writeln; end;
for i:=1 to k do if a^[i].n>=10 then writeln(f1,'chislo bukv:',a^[i].m,' slov:',a^[i].n);
readkey; graf; close(f); close(f1); end.
М
Во первых пользуйтесь тегами, во вторых предоставьте текст задания, может быть кто-нибудь и сделает ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.