Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программы, Pascal (http://www.tehnari.ru/f41/t74035/)

lisa_a 27.05.2012 13:42

Программы, Pascal
 
Вложений: 2
Вот три лабораторных досдать до зачета осталось, но как-то не идет с ними у меня дело... надеюсь на вашу помощь :)

1) Если в заданный текст входит каждая из букв слова "key" следует напечатать "yes" иначе – "no".

2) Установить графический режим и изобразить на экране рисунок (можно использовать различные цвета по своему усмотрению).

3) Построить графики функций

Vladimir_S 27.05.2012 16:15

Раз речь о графике, уточните - какой Паскаль: Turbo/Borland/Free или ABC?
И еще по третьему заданию - наверняка там что-то напутано. Видите ли, при приближении х к 3 слева значение функции стремится к 9, а вот справа - к 1/33, т.е. примерно к 0.03, и с ростом х будет только уменьшаться, поэтому изобразить функцию в одном масштабе нереально: правая часть (x>3) будет практически не видна и пойдет по оси Х.

lisa_a 27.05.2012 16:37

Цитата:

Сообщение от Vladimir_S (Сообщение 738872)
Раз речь о графике, уточните - какой Паскаль: Turbo/Borland/Free или ABC?

Free Pascal

Цитата:

Сообщение от Vladimir_S (Сообщение 738872)
И еще по третьему заданию - наверняка там что-то напутано. Видите ли, при приближении х к 3 слева значение функции стремится к 9, а вот справа - к 1/33, т.е. примерно к 0.03, и с ростом х будет только уменьшаться, поэтому изобразить функцию в одном масштабе нереально: правая часть (x>3) будет практически не видна и пойдет по оси Х.

Да вроде так все - скопировала картинку прям из задания...

Vladimir_S 27.05.2012 21:04

Вложений: 1
Вот, жука. Только уж извините, но упростил несколько. Потому что программировать отсеченные эллипсы-пятнышки и заполненные треугольники на концах усиков - можно, но такая морока... Может быть, и так сойдет?
Код:

Uses CRT, Graph;
Begin
 InitGraph(..); {ТУТ - САМОСТОЯТЕЛЬНО}
 SetLineStyle(SolidLn,0,ThickWidth);
 SetFillStyle(SolidFill,GetColor);
 FillEllipse((GetMaxX div 2),Round(0.4*GetMaxY),
        Round(0.1*GetMaxX),Round(0.2*GetMaxY));
 SetFillStyle(SolidFill,GetBkColor);
 FillEllipse((GetMaxX div 2),Round(0.6*GetMaxY),
        Round(0.2*GetMaxX),Round(0.3*GetMaxY));
 Line((GetMaxX div 2),Round(0.9*GetMaxY),
      (GetMaxX div 2),Round(0.3*GetMaxY));
 SetFillStyle(SolidFill,GetColor);
 FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.12),Round(0.75*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.12),Round(0.75*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.12),Round(0.45*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.12),Round(0.45*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.38*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.38*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.82*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.82*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.6*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.6*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.16),Round(0.6*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.16),Round(0.6*GetMaxY),
        Round(0.02*GetMaxX),Round(0.04*GetMaxY));
 Line((GetMaxX div 2)-Round(GetMaxX*0.02),Round(0.3*GetMaxY),
      (GetMaxX div 2)-Round(GetMaxX*0.02),Round(0.15*GetMaxY));
 Line((GetMaxX div 2)+Round(GetMaxX*0.02),Round(0.3*GetMaxY),
      (GetMaxX div 2)+Round(GetMaxX*0.02),Round(0.15*GetMaxY));
 Bar((GetMaxX div 2)-Round(GetMaxX*0.02),Round(0.15*GetMaxY),
    (GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.17*GetMaxY));
 Bar((GetMaxX div 2)+Round(GetMaxX*0.02),Round(0.15*GetMaxY),
    (GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.17*GetMaxY));
 ReadKey;
 CloseGraph;
End.

Да, если у Вас идет рисование не белым по черному, а черным по белому - ничего менять не надо, само отработает.

Vladimir_S 27.05.2012 21:15

Цитата:

Сообщение от lisa_a (Сообщение 738740)
1) Если в заданный текст входит каждая из букв слова "key" следует напечатать "yes" иначе – "no".

Код:

Var
 S:String;
 b1,b2,b3:boolean;
 i:Byte;
Begin
 Writeln('Enter the string:');
 Readln(S);
 b1:=false;
 b2:=false;
 b3:=false;
 For i:=1 to Length(S) do
  begin
  if S[i]='k' then b1:=true;
  if S[i]='e' then b2:=true;
  if S[i]='y' then b3:=true;
  end;
 If b1 and b2 and b3 then Writeln('Yes!') else Writeln('No!');
 Readln
End.


Vladimir_S 27.05.2012 21:58

Elkka, у нас НЕ ПРИНЯТО цепляться к чужим темам! Создана новая: http://www.tehnari.ru/f41/t74068/
Сюда попрошу больше не постить.

lisa_a 05.06.2012 12:48

Цитата:

Сообщение от Vladimir_S (Сообщение 739056)
Вот, жука. Только уж извините, но упростил несколько. Потому что программировать отсеченные эллипсы-пятнышки и заполненные треугольники на концах усиков - можно, но такая морока... Может быть, и так сойдет?
Код:
Uses CRT, Graph;
Begin
InitGraph(..); {ТУТ - САМОСТОЯТЕЛЬНО}
SetLineStyle(SolidLn,0,ThickWidth);
SetFillStyle(SolidFill,GetColor);
FillEllipse((GetMaxX div 2),Round(0.4*GetMaxY),
Round(0.1*GetMaxX),Round(0.2*GetMaxY));
SetFillStyle(SolidFill,GetBkColor);
FillEllipse((GetMaxX div 2),Round(0.6*GetMaxY),
Round(0.2*GetMaxX),Round(0.3*GetMaxY));
Line((GetMaxX div 2),Round(0.9*GetMaxY),
(GetMaxX div 2),Round(0.3*GetMaxY));
SetFillStyle(SolidFill,GetColor);
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.12),Round(0.75*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.12),Round(0.75*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.12),Round(0.45*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.12),Round(0.45*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.38*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.38*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.82*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.82*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.6*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.6*GetMaxY),

Да сойдет и без деталей, спасибо :)
Но вот ругается он что-то на строчку
Цитата:

SetFillStyle(SolidFill,GetBkColor);

Vladimir_S 05.06.2012 12:55

Цитата:

Сообщение от lisa_a (Сообщение 744227)
Но вот ругается он что-то на строчку
SetFillStyle(SolidFill,GetBkColor);

А как ругается? Что пишет?

lisa_a 06.06.2012 07:54

Цитата:

Сообщение от Vladimir_S (Сообщение 744229)
А как ругается? Что пишет?

Ну в общем вот:
Цитата:

Uses CRT, Graph;
var gd,gm:integer;
Begin
gd:=detect;
InitGraph(gd,gm,'');
SetLineStyle(SolidLn,0,ThickWidth);
SetFillStyle(SolidFill,GetColor);
FillEllipse((GetMaxX div 2),Round(0.4*GetMaxY),
Round(0.1*GetMaxX),Round(0.2*GetMaxY));
SetFillStyle(SolidFill,GetBkColor);
FillEllipse((GetMaxX div 2),Round(0.6*GetMaxY),
Round(0.2*GetMaxX),Round(0.3*GetMaxY));
Line((GetMaxX div 2),Round(0.9*GetMaxY),
(GetMaxX div 2),Round(0.3*GetMaxY));
SetFillStyle(SolidFill,GetColor);
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.12),Round(0.75*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.12),Round(0.75*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.12),Round(0.45*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.12),Round(0.45*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.38*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.38*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.82*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.82*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.6*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.6*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)-Round(GetMaxX*0.16),Round(0.6*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
FillEllipse((GetMaxX div 2)+Round(GetMaxX*0.16),Round(0.6*GetMaxY),
Round(0.02*GetMaxX),Round(0.04*GetMaxY));
Line((GetMaxX div 2)-Round(GetMaxX*0.02),Round(0.3*GetMaxY),
(GetMaxX div 2)-Round(GetMaxX*0.02),Round(0.15*GetMaxY));
Line((GetMaxX div 2)+Round(GetMaxX*0.02),Round(0.3*GetMaxY),
(GetMaxX div 2)+Round(GetMaxX*0.02),Round(0.15*GetMaxY));
Bar((GetMaxX div 2)-Round(GetMaxX*0.02),Round(0.15*GetMaxY),
(GetMaxX div 2)-Round(GetMaxX*0.04),Round(0.17*GetMaxY));
Bar((GetMaxX div 2)+Round(GetMaxX*0.02),Round(0.15*GetMaxY),
(GetMaxX div 2)+Round(GetMaxX*0.04),Round(0.17*GetMaxY));
ReadKey;
CloseGraph;
End.
А пишет вот что:
Цитата:

lab8.pas(10,35) Error: Incompatible type for arg no. 2: Got "<procedure variable type of function:Word;Register>", expected "Word"
lab8.pas(51) Fatal: There were 1 errors compiling module, stopping
lab8.pas(0) Fatal: Compilation aborted

Vladimir_S 06.06.2012 09:48

Цитата:

Сообщение от lisa_a (Сообщение 744625)
А пишет вот что:

Не понимаю, чего это он. У меня, естественно, жрет и не давится. Какие ему там регистры еще нужны?
Ну ладно, попробуйте вместо GetBkColor поставить в явном виде цвет фона (черный - 0, белый - 15). Авось так скушает.


Часовой пояс GMT +4, время: 16:18.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.