Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2008, 16:26   #1
Айат
Пользователь
 
Регистрация: 26.12.2007
Сообщений: 32
Восклицание помогите найти ошибку в коде плиз

код программы на паскале. Выдает ошибку, мол несоответсвие типов. Вроде писал как учили =)))

program count_rus_letters;
uses Dos;
var
dir : SearchRec;
code: integer;
n : longint;
c : char;
f : text;
begin
n := 0;
FindFirst ('*.txt', AnyFile, Info);
while DosError = 0 do begin
assign (f, Info.Name); reset(f);
while not EOF(f) do begin
read(f,c);
code := ord(c);
if (code > $7F) and (code < $B0)
or (code > $DF) and (code < $F2) then inc(n);
end;
close(f);
FindNext(Info);
end;
writeln ('russkix bukv v tekushei direktorii - ', n)
end.


вот второй код с модулем Graph


program lines;
uses Graph, Crt;
const
grDriver : integer = Detect;
size = 40;
s2 = size div 2;
s4= size div 4;
margin = 40;

var
grMode : integer;
ErrCode : integer;
HalfX, HalfY : integer;
x, y, x1, x2, y2, y1, i : integer;
Image: pointer;
begin
randomize;
{graphica*}
InitGraph (grDriver, grMode, 'c:\FPC\2.1.4\');
ErrCode := GraphResult;
if ErrCode <> GrOk then begin
writeln ('oshibka s grathikoi: ' , GraphErrorMsg(ErrCode));
exit end;
{linii}
HalfX := GetMaxX div 2;
HalfY := GetMaxY div 2;
x := HalfX; x1 := x;
y := HalfY; y1 := y;
for i := 1 to 450 do begin
x2 := round(cos(0.05 * i) * HalfY) + HalfX;
y2 := round(sin(0.02 * i) * HalfY) + HalfY;
if (i mod 10) = 0 then SetColor(random(15) + 1);
Line(x1, y1, x2, y2);
Line(x, y, x2, y2);
x1 := x2; y1 := y2;
delay(5);
end;
{sprite}
SetColor(Cyan);
x := margin; y := x;
Circle (x+s2, y+s2, s2);
SetFillStyle (InterLeaveFill, Green);
FillEllipse (x+s4, y+s4, s4, s4 div 2);
FillEllipse (x+3*s4, y+s4, s4, s4 div 2);
SetLineStyle (SolidLn, 0, ThickWidth);
Line (x+s2, y+s4, x+s2, y+s2);
SetColor(Red);
Arc (x+s2, y+s2, 200, 340, s4);
Getmem (image, imagesize(x,y, x+size, y+ size));
GetImage (x, y, x+size, y+size, image^);
GetImage (x,y, image^, XorPut);
{smile}
while x< GetMaxX - margin - size do begin
putImage (x,y, image^, XorPut);
delay (20);
PutImage (x,y, image^, XorPut);
inc(x,5);
end;
PutImage (x,y, image^, XorPut);
{text}
SetColor(Cyan);
SetTextStyle (GothicFont, HorizDir, 4);
OuttextXY (HalfX + margin, HalfY - margin, 'The End');
readln;


CloseGraph
end.


и третий код и та же самая ошибка, несоответствие типов

program povtorenia;
uses Strings;
var str, p, text : pchar;
buf : string;
f : file of char;
i, num, len : integer;
begin
assign (f, '...'); reset(f);
len := Filesize(f); Getmem(text, len + 1);
i := 0;
while not Eof(f) do begin
read(f, text[i]); inc(i);
end;
text[i] := #0;
close (f);
strlower(text);
writeln ('kakuyu podstroku iskat' ?');
readln(buf);
getmem(str, length(buf) + 1); strcopy (str, buf);
strlower (str);

p := text;
num := 0;
while true do begin
p := strpos (p, str);
if p = nil then break else inc(num);
inc(p);
end;
writeln ('kol-vo povtoreniy: ' , num)
end.

буду очень признателен если подскажите как исправить ошибку
Айат вне форума Ответить с цитированием
Старый 01.10.2008, 16:43   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По крайней мере в первой программе такой ошибки не выдает. А вот тут у Вас ошибка:
объявлено dir : SearchRec;
а по ходу пьесы везде Info : FindFirst ('*.txt', AnyFile, Info);

По второй программе откройте Help и прочитайте про процедуру GetImage, а то у Вас праметры не те, да и количество иногда не совпадает.
А по третьей программе, извините, у нас нет модуля uses Strings;

Последний раз редактировалось puporev; 01.10.2008 в 16:54.
puporev вне форума Ответить с цитированием
Старый 01.10.2008, 17:43   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

По третьей меня что-то вот это смущает:
p := text;
num := 0;
while true do begin
p := strpos (p, str);
if p = nil then break else inc(num);
inc(p);
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Памагите найти ошибку в коде...С++ Goblin Помощь студентам 1 13.05.2008 18:15
Помогите исправить ошибку в коде... prizrak1390 Общие вопросы Delphi 4 26.04.2008 13:19
помогите найти ошибку в коде Joker88 Помощь студентам 1 04.03.2008 12:43
Помогите найти ошибку NeiL Общие вопросы Delphi 7 04.03.2008 07:14