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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2008, 12:16   #1
ЯншинаВера
 
Регистрация: 29.03.2008
Сообщений: 9
Вопрос Подскажите где ошибки? Не работает программа на Паскале

Первая: Написать программу, которая выводит круговую диаграмму, отражаю-щую товарооборот (в процентах) книжного магазина. Исходные данные (объем продаж в рублях по категориям: книги, журналы, открытки, канцтовары) вво-дятся во время работы программы.

Вторая:Написать программу игры «Угадай число». Правила игры следующие. Играют двое. Один задумывает число, второй — угадывает. На каждом шаге угадывающий делает предположение, а задумавший число — говорит, сколько цифр числа угаданы и сколько из этих цифр занимают правильные позиции в числе. Например, если задумано число 725 и выдвинуто предположение, что задумано число 523, то считаются угаданными две цифры (5 и 2) и одна из них (2) занимает верную позицию.
Ниже представлен рекомендуемый вид экрана во время работы програм-мы. Данные, введенные пользователем, выделены полужирным шрифтом.

Компьютер задумал трехзначное число. Вы должны его отгадать.
После очередного числа вам будет сообщено, сколько цифр
угадано и сколько из них находится на своих местах.
После ввода числа нажимайте <Enter>.
Для завершения игры нажмите <Esc>.

Ваш вариант ->123 Угадано: 0 На своих местах:0
ваш вариант ->456 Угадано: 1. На своих местах:0
Ваш вариант ->654 Угадано: 2. На своих местах:2
ваш вариант ->657 Угадано: 2. На своих местах:2
Ваш вариант ->658 Угадано: 3. На своих местах:3
*** ВЫ УГАДАЛИ ***


Код к первой:
Код:
program Diagr;
uses crt,graph;
var
 key:char;
 GrDriver,GrMode:integer;
kn, gu, ka, pr, s, proc:real;
U1, U2, U3, U4:integer;

{--------------------------------------------------------}
Procedure Diagramma;
Var i,j:integer;
begin
SetFillStyle(5,1);
Sector(320,240,U1,U2,100,100);
SetFillStyle(6,2);
Sector(320,240,U2,U3,100,100);
SetFillStyle(7,4);
Sector(320,240,U3,U4,100,100);
SetFillStyle(8,14);
Sector(320,240,U4,U1,100,100);
end;
{--------------------------------------------------------}
Procedure Nadpis;
begin
setcolor(2);
outtextXY(20,200,'KHIGI -');
outtextXY(20,210,'GURNALY-');
outtextXY(20,220,'KANCTOVARY -');
outtextXY(20,230,'PROCHEE -');
end;
{--------------------------------------------------------}

begin

randomize;
clrscr;
writeln('VVEDITE DANNYE OBEMA PRODAG B RUBLYAX:');
writeln('KHIGI:  '); read(kn);
writeln('GURNALY:  '); read(gu);
writeln('KANCTOVARY:  '); read(ka);
writeln('PROCHEE:  '); read(pr);
s:=kn+gu+ka+pr;
proc:=s/100;
kn:=kn/proc; gu:=gu/proc; ka:=ka/proc; pr:=pr/proc;
U1:=0; U2:=round(3.6*kn); U3:=round(3.6*gu); U4:=round(3.6*ka);
GrDriver:=detect;
 initGraph(GrDriver,GrMode,'');
Diagramma;
Nadpis;
ReadKey;
 closeGraph;
end.

Код ко второй:
Код:
program YgadaiChislo;
uses crt;
var
i, j, k, s, n, m, c:integer;
a: array[1..2] of integer;
b: array[1..2] of integer;
label M1;
begin
randomize;
clrscr;
writeln('Komputer zadumal 3-znachnoe chislo.');
writeln('Vy dolgny ego otgadat.');
writeln('Posle ocherednogo chisla vam budet soobcheno,');
writeln('skolko cifr ugadano i skolko iz nih na-hoditsya na svoih mestah.');
writeln('Posle vvoda chisla nagimajte <Enter>.');
writeln('Dlya zaversheniya igry nagmite <Esc>.');
writeln;
n:= random(90)+10; write(n);
c:=n;
for i:=1 to 2 do begin
c:=c div 10;
a[i]:=c;
end;
write ('Vash variant  ->  ');
read(m);
while m<>n do begin
k:=0; s:=0;
c:=m;
for i:=1 to 2 do begin
c:=c div 10;
b[i]:=c;
end;
for i:=1 to 2 do
for j:=1 to 2 do
if  a[i]=b[j] then k:=k+1;
for i:=1 to 2 do
if a[i]=b[j] then s:=s+1;
write('   Ugadano: ', k, '         Na svoih mestah: ', s);
writeln;
write ('Vash variant  ->  ');
read(m);
end;
writeln ('   * * *   VY  UGADALI    * * *    ');
readln;
readln;

end.

Последний раз редактировалось Stilet; 21.05.2008 в 12:41.
ЯншинаВера вне форума Ответить с цитированием
Старый 21.05.2008, 19:47   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

вот ко 2... задаче код
Это для 2 чисел. Фишка в том, что числа переводятся в строки и сравниваются потом как строчные переменные. Этот вариант менее рационален, и подходит только для данного случая. Это не универсальный вариант, но так можно сдать эту работу и не париться. Просто думать не хотел.... слепил от балды.

Автор если возьмёшь мою идею, не забидь приделать обработку 3 числа, точнее 3 символа строки )))))))))))))))))))))))))

Код:
program YgadaiChislo;
uses  crt;
var
 n,m:integer;
 s,s1:string;
begin
 clrscr;
 randomize;
 writeln('Komputer zadumal 3-znachnoe chislo.');
 writeln('Vy dolgny ego otgadat.');
 writeln('Posle ocherednogo chisla vam budet soobcheno,');
 writeln('skolko cifr ugadano i skolko iz nih na-hoditsya na svoih mestah.');
 writeln('Posle vvoda chisla nagimajte <Enter>.');
 writeln('Dlya zaversheniya igry nagmite <Esc>.');
 writeln;
 n:= random(90)+10;
 writeln(n);{viviod zadumannogo chisla}
 str(n,s);
 while s1<>s do
 begin
  write ('Vash variant  ->  ');
  read(m);
  str(m,s1);
  if (s1[1]=s[1]) and (s1[2]<>s[2]) then
   begin
    write('   Ugadano: 1         Na svoih mestah: 1');
    writeln;
    writeln;
   end;
   if (s1[2]=s[2]) and (s1[1]<>s[1]) then
   begin
    write('   Ugadano: 1         Na svoih mestah: 1');
    writeln;
    writeln;
   end;
   if s1=s then
     begin
      write('   Ugadano: 2         Na svoih mestah: 2');
      writeln;
      writeln;
      writeln ('   * * *   VY  UGADALI    * * *    ');
      readln;
      readln;
      exit;
     end;
   if (s1[2]<>s[2]) and (s1[1]<>s[1]) then
   begin
    write('   Ugadano: 0         Na svoih mestah: 0');
    writeln;
    writeln;
   end;
 end;
end.
Arkuz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа не работает ZYRGiX Помощь студентам 2 22.07.2008 21:44
задача работает неправильно, подскажите! IvanIvan Помощь студентам 1 26.05.2008 22:21
Программа не работает Михаил Юрьевич Общие вопросы Delphi 2 19.04.2008 23:27
Подскажите почему не работает программа??? Danilyuk Помощь студентам 2 25.01.2008 10:15