• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программы, Pascal

  • Автор темы Автор темы lisa_a
  • Дата начала Дата начала

lisa_a

Ученик
Регистрация
27 Май 2012
Сообщения
4
Реакции
0
Баллы
0
Программы, Pascal

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

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

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

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

Вложения

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

И еще по третьему заданию - наверняка там что-то напутано. Видите ли, при приближении х к 3 слева значение функции стремится к 9, а вот справа - к 1/33, т.е. примерно к 0.03, и с ростом х будет только уменьшаться, поэтому изобразить функцию в одном масштабе нереально: правая часть (x>3) будет практически не видна и пойдет по оси Х.
Да вроде так все - скопировала картинку прям из задания...
 
Вот, жука. Только уж извините, но упростил несколько. Потому что программировать отсеченные эллипсы-пятнышки и заполненные треугольники на концах усиков - можно, но такая морока... Может быть, и так сойдет?
Код:
Uses CRT, Graph;
Begin
 InitGraph(..); [COLOR=Red][B]{ТУТ - САМОСТОЯТЕЛЬНО}[/B][/COLOR]
 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.
Да, если у Вас идет рисование не белым по черному, а черным по белому - ничего менять не надо, само отработает.
 

Вложения

  • God_Cow.webp
    God_Cow.webp
    8.9 KB · Просмотры: 124
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.
 
Elkka, у нас НЕ ПРИНЯТО цепляться к чужим темам! Создана новая: http://www.tehnari.ru/f41/t74068/
Сюда попрошу больше не постить.
 
Вот, жука. Только уж извините, но упростил несколько. Потому что программировать отсеченные эллипсы-пятнышки и заполненные треугольники на концах усиков - можно, но такая морока... Может быть, и так сойдет?
Код:
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);
 
А как ругается? Что пишет?
Ну в общем вот:
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
 
А пишет вот что:
Не понимаю, чего это он. У меня, естественно, жрет и не давится. Какие ему там регистры еще нужны?
Ну ладно, попробуйте вместо GetBkColor поставить в явном виде цвет фона (черный - 0, белый - 15). Авось так скушает.
 
Назад
Сверху