Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 27.05.2012, 13:42   #1 (permalink)
lisa_a
Новичок
 
Регистрация: 27.05.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программы, Pascal

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

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

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

3) Построить графики функций
Миниатюры
564654.jpg   85241.jpg  
lisa_a вне форума   Ответить с цитированием

Старый 27.05.2012, 13:42
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я вам советую обратить внимание на ранее созданные темы

Помогите написать программы на языке Pascal
Помогите с написанием программы на Pascal
Помогите пожалуйста написать программы в Pascal
Помогите, пожалуйста, с составлением программы в Pascal
Требуется помощь в написании программы на языке Turbo Pascal
Помогите в написании программы в Pascal

Старый 27.05.2012, 16:15   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Раз речь о графике, уточните - какой Паскаль: Turbo/Borland/Free или ABC?
И еще по третьему заданию - наверняка там что-то напутано. Видите ли, при приближении х к 3 слева значение функции стремится к 9, а вот справа - к 1/33, т.е. примерно к 0.03, и с ростом х будет только уменьшаться, поэтому изобразить функцию в одном масштабе нереально: правая часть (x>3) будет практически не видна и пойдет по оси Х.
Vladimir_S вне форума   Ответить с цитированием
Старый 27.05.2012, 16:37   #3 (permalink)
lisa_a
Новичок
 
Регистрация: 27.05.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
И еще по третьему заданию - наверняка там что-то напутано. Видите ли, при приближении х к 3 слева значение функции стремится к 9, а вот справа - к 1/33, т.е. примерно к 0.03, и с ростом х будет только уменьшаться, поэтому изобразить функцию в одном масштабе нереально: правая часть (x>3) будет практически не видна и пойдет по оси Х.
Да вроде так все - скопировала картинку прям из задания...
lisa_a вне форума   Ответить с цитированием
Старый 27.05.2012, 21:04   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Вот, жука. Только уж извините, но упростил несколько. Потому что программировать отсеченные эллипсы-пятнышки и заполненные треугольники на концах усиков - можно, но такая морока... Может быть, и так сойдет?
Код:
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.
Да, если у Вас идет рисование не белым по черному, а черным по белому - ничего менять не надо, само отработает.
Миниатюры
god_cow.jpg  
Vladimir_S вне форума   Ответить с цитированием
Старый 27.05.2012, 21:15   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от lisa_a Посмотреть сообщение
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 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 27.05.2012, 21:58   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Elkka, у нас НЕ ПРИНЯТО цепляться к чужим темам! Создана новая: Паскаль, работа с матрицей
Сюда попрошу больше не постить.
Vladimir_S вне форума   Ответить с цитированием
Старый 05.06.2012, 12:48   #7 (permalink)
lisa_a
Новичок
 
Регистрация: 27.05.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Вот, жука. Только уж извините, но упростил несколько. Потому что программировать отсеченные эллипсы-пятнышки и заполненные треугольники на концах усиков - можно, но такая морока... Может быть, и так сойдет?
Код:
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);
lisa_a вне форума   Ответить с цитированием
Старый 05.06.2012, 12:55   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от lisa_a Посмотреть сообщение
Но вот ругается он что-то на строчку
SetFillStyle(SolidFill,GetBkColor);
А как ругается? Что пишет?
Vladimir_S вне форума   Ответить с цитированием
Старый 06.06.2012, 07:54   #9 (permalink)
lisa_a
Новичок
 
Регистрация: 27.05.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А как ругается? Что пишет?
Ну в общем вот:
Цитата:
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
lisa_a вне форума   Ответить с цитированием
Старый 06.06.2012, 09:48   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

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

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.