IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Помогите кто может переделать прогу с Паскаля на СИ!, С паскаля на СИ...
сообщение
Сообщение #1


Гость






Народ написал прогу на Паскале, а теперь препод требует тоже самое написать на Си =(. А я не очень то в нем шарю... мб поможете? текст проги прилагаю!!


program pr9;

uses crt, graph;

const znaki=['.',',','?','!','1','2','3','4','5','6','7','8','9'];

type slovo = record
s: string;
n: integer;
m:integer;
end;
slova = array[1..1] of slovo;


var l,q,t,k,i,j: integer;
st,st1,st2: string;
f,f1: text;
a: ^slova;
sl: slovo;

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.


М
Во первых пользуйтесь тегами, во вторых предоставьте текст задания, может быть кто-нибудь и сделает ...



Сообщение отредактировано: klem4 -
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 4:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name