Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тестовая программа 
:(
    Опции темы
Minira
Дата 17.4.2005, 02:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может кто-нибудь помочь написать тестовую программу на языке Turbo Pascal или СИ++ ?
  Вверх
Pakshin A. S.
Дата 17.4.2005, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 5
Всего: 61



Поясните задачу... Вам нужно программа-тестер? Типа "выберите правильный ответ"...
PM   Вверх
Minira
Дата 18.4.2005, 01:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











написать нужно тестовую программу по информатике... т.е. программа выдает вопрос - к нему, например, три варианта ответа... нужно выбрать один из них... вопросы у меня уже есть... а в конце программа подсчитывает кол-во баллов....
и в конце может вывести оценку... это уже по усмотрению... вот такая ерунда))))))))
заранее благодарна)
  Вверх
batigoal
Дата 18.4.2005, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Эх, и почему никогда никому ничего на Java не нужно... smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
sergejzr
Дата 18.4.2005, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



C графикой али в досе?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
batigoal
Дата 18.4.2005, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Если подходит Турбо паскаль - наверное, в консоли. Или времена изменились и теперь в нем тоже можно win applications писать?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Fedor
Дата 18.4.2005, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Цитата(Lamer @ 18.4.2005, 15:50)
Или времена изменились и теперь в нем тоже можно win applications писать?

Зайди в мой раздел, там прикрепленная тема "Проект lazarus". Так что можно и графику smile

Minira а в чем собсна сложность?


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
SPrograMMer
Дата 18.4.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: нет
Всего: 6



Цитата(Fedor @ 18.4.2005, 18:28)
Minira а в чем собсна сложность?

УГУ.
Список вопросов и ответов можно в файле хранить, список правльных - то же. При загрузке программы считываем все это счастье, ну например в массив. Затем берём красивую переменную I и делаем цикл от 1 до ... сколько там у тебя говоришь вопросов? smile Для каждого I выдаешь вопрос и варианты, юзер вводит, допустим номер ответа, ты сравниваешь это номер, с номером правильного ответа для I-ого вопроса т если правильно, то увеличиваешь счетчик правльных ответов (в начале программы этот счетчик надо обнулить). Когда I закончиться сообщаешь юзеру какой он олух, и что он ответил правльно всегонавсего на [тут значение счетчика правильных ответов] вопросов.
Вот собсно и усё. smile


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
batigoal
Дата 18.4.2005, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Fedor
Всенепременно завтра зайду.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Minira
Дата 20.4.2005, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.4.2005

Репутация: нет
Всего: нет



а мне все равно сложно)
PM MAIL   Вверх
Minira
Дата 20.4.2005, 03:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 18.4.2005

Репутация: нет
Всего: нет



а если это вам трудности не создает.... вот и напишите мне программку))))))
PM MAIL   Вверх
jimmi
Дата 20.4.2005, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.9.2004

Репутация: нет
Всего: 5



Не знаю как эта тема попала в микроконроллеры.
Тесты писать не приходилось, есть графопостроитель с автоматическим масштабированием, может подойдет Вам. Может нужно кому-то другому.

Функцию можно ввести любую, какую Паскаль поймет.
Вообще мне это было нужно чтобы строить графики переходных процессов в электрических цепях. Не забудьте про директорию где лежит графическая библиотека, иначе графический режим не включится. Исходник на Турбо Паскаль
Код

program Grafica;
uses Crt,Graph,Dos;
label continue,finish,endPlot;
type
  Names = string [10];
const
pi=3.1415926;
var
 y,xMin,xMax,yMin,yMax,xStep,xMashtab,yMashtab: real;
 xText,yText,xLine,yLine,yInt,yCentrLast,yCentr,driver,mode,i,j,k: integer;
 xMinName,xMaxName,yMinName,yMaxName : Names;
 R:registers;
function Fun(x:real):real;
begin
     IF X<0 THEN Fun:=COS(X) ELSE Fun:=COS(X)*EXP(-1E-1*X);
end;

begin
        xMin:=-50;
        xMax:=50;
 yMin:=1e38;
 yMax:=-1e38;
 xStep:=(xMax-xMin)/160;
 driver:=1;
 mode:=4;
 initgraph(driver,mode,'d:\TPAS\tp7\bgi\');
 rectangle(0,0,639,199);
 for i:=0 to 159 do
  begin
    y:=Fun(xMin+xStep*i);
    if yMax>y then goto continue;
    yMax:=y;
   continue: if yMin<y then goto finish;
    yMin:=y;
   finish:
  end;

 str(xMin:9,xMinName);
 str(xMax:9,xMaxName);
 str(yMin:9,yMinName);
 str(yMax:9,yMaxName);

 xMashtab:=(xMax-xMin)/640;
 yMashtab:=(yMax-yMin)/180;
 xStep:=(xMax-xMin)/640;
 xLine:=320-round((xMax+xMin)/(2*xMashtab));
 yLine:=100+round((yMax+yMin)/(2*yMashtab));
  if xLine<=0 then yText:=20
         else if xLine<=540 then yText:=xLine+4
              else if xLine<=640 then yText:=xLine-80
                   else yText:=540;
  OutTextXY(yText,1,  yMaxName);
  OutTextXY(yText,191,yMinName);
  if yLine<=0 then xText:=20
         else if yLine<=150 then xText:=yLine+10
              else xText:=160;
  OutTextXY(0  ,xText, xMinName);
  OutTextXY(560,xText, xMaxName);
  yCentrLast:=10;
  for i:=1 to 640 do
  begin
   yInt:=round(Fun(xMin+xStep*i)/yMashtab);
   if yMax<0 then
    begin
     yCentr:=10-round(abs(yMax)/yMashtab)-yInt
    end else
     if yMin>0 then
      begin
       yCentr:=190+round(yMin/yMashtab)-yInt
      end else
       begin
        yCentr:=yLine-yInt;
        putpixel(i-1,yLine,1);
       end;
   if i=1 then goto endPlot;
     if yCentrLast<yCentr then
       begin
      for j:=yCentrLast to yCentr-1 do
             begin
           putpixel(i-1,j,1);
         end;
       end else
           if yCentrLast>yCentr then
           begin
          for j:=yCentr to yCentrLast-1 do
               begin
                 putpixel(i-1,j,1);
               end
       end else putpixel(i-1,yCentr,1);
 endPlot:
   yCentrLast:=yCentr
 end;

  for i:=0 to 199 do
    begin
      if xMax<=0 then
       begin
       end else
        if xMin>=0 then
         begin
         end else
          begin
            putpixel(xLine,i,1);
            putpixel(xLine-1,i,1);
          end;
     end;

  repeat until Keypressed;
  closegraph;end.


Это сообщение отредактировал(а) jimmi - 20.4.2005, 10:15
PM MAIL   Вверх
rsm
Дата 20.4.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 1
Всего: 62



Накатал на скорую руку в Дельфях. Надо проверить будет ли работать в Паскале (теоретичеки должно работать, специально заменял все функции типа StrToInt на паскалевые аналоги).
Код

program tester;

{$APPTYPE CONSOLE} // это только для Дельфи, в Паскале убрать!

uses SysUtils; // SysUtils это тоже только для Дельфи, в Паскале убрать!

var
   sTemp, sUserAnswer, sRightAnswer: String;
   sNumber: ShortString;
   i, nQuestionCounter, nTotalQuestions, nRightAnswers: Cardinal;
   tfData: TextFile;

const
   sFileName = 'data.dat'; // файл с данными

   // строки диалога с юзером, поменять на любые свои
   sQuestionCaption = 'Question: ';
   sAnswerCaption = 'Answer N';
   sEnterYouAnswer = 'Enter number of right answer...';
   sTotalQuestions = 'Total questions: ';
   sRightAnswers = 'Number of right answers: ';

begin
   AssignFile(tfData, sFileName);
   {$I-}
      Reset(tfData);
   {$I+}
   if (IOResult <> 0) then exit;
   nTotalQuestions:= 0;
   nRightAnswers:= 0;
   while (true) do
      begin
         ReadLn(tfData, sTemp);
         if (sTemp = '') then break;
         nQuestionCounter:= 0;
         if (sTemp[3] = '#') then
            begin
               Val(Copy(sTemp, 1, 2), nQuestionCounter, i);
               Delete(sTemp, 1, 3);
               WriteLn(sQuestionCaption + sTemp);
               WriteLn;
               Inc(nTotalQuestions);
            end;
         for i:= 1 to nQuestionCounter do
            begin
               ReadLn(tfData, sTemp);
               if (sTemp[1] = '&') then
                  begin
                    Str(i, sRightAnswer);
                    Delete(sTemp, 1, 1);
                  end;
               Str(i, sNumber);
               WriteLn(sAnswerCaption + sNumber + ': ' + sTemp);
            end;
         WriteLn;
         WriteLn(sEnterYouAnswer);
         ReadLn(sUserAnswer);
         if (Trim(sUserAnswer) = sRightAnswer) then Inc(nRightAnswers);
         WriteLn;
         WriteLn;
      end;
   CloseFile(tfData);
   WriteLn;
   WriteLn('------------------------------------------------------------');
   Str(nTotalQuestions, sNumber);
   WriteLn(sTotalQuestions + sNumber);
   Str(nRightAnswers, sNumber);
   WriteLn(sRightAnswers + sNumber);
   ReadLn;   
end.


Формат файла с вопросами и ответами:

Цитата

04#Вопрос первый
Первый ответ на первый вопрос
Второй ответ на первый вопрос
&Третий ответ на первый вопрос
Четрвертый ответ на первый вопрос


Расшифровка:

04#Вопрос первый
04 - количество ответов на данный вопрос (если кол-во вопросов менее 10 обязательно ставить 0!).
# - указывает что данная строка является вопросом

&Третий ответ на первый вопрос
& - указывает что это правильный ответ


Рассмотрим пример:
Вопрос: Зачем эта тема?
Ответ №1: Чтобы читатели темы написали программу с тем чтобы привлечь автора темы на форум.
Ответ №2: Чтобы читатели темы помучали автора темы пространными ответами.
Ответ №3: Чтобы полностью отбить у автора темы желание обращаться на форум.
Правильный ответ: 1.

Тогда в файл вопросов-ответов пишем следующее:
Цитата

03#Зачем эта тема?
&Чтобы читатели темы написали программу с тем чтобы привлечь автора темы на форум.
Чтобы читатели темы помучали автора темы пространными ответами.
Чтобы полностью отбить у автора темы желание обращаться на форум.



З.Ы. Код конечно жутковатый и неоптимальный но это не беда - сейчас народу в теме прибавится, ведь главное начать а там уж как-нибудь вместе добьем! smile

PM MAIL   Вверх
SPrograMMer
Дата 20.4.2005, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: нет
Всего: 6



Цитата(rsm @ 20.4.2005, 18:19)
Формат файла с вопросами и ответами:

Ну я только предложил, все в файле хранить, вообще моно было есчо .... (у маразм, но все же) использовать типизированные константы-массивы с вопросами и ответами, тогда такой "сложный" формат файла не нужен. В общем на вкус и цвет как говорится... smile
Добавлено @ 21:41
Насчет Delphi => Pascal (усё перписывать не буду - лень!!! smile ):
Цитата(rsm @ 20.4.2005, 18:19)
  tfData: TextFile;

В паскале надо:
tfData:Text;

Цитата(rsm @ 20.4.2005, 18:19)
  AssignFile(tfData, sFileName);

Просто Assign(tfData, sFileName);


Цитата(rsm @ 20.4.2005, 18:19)
  CloseFile(tfData);

Close(tfData);

А все остальное должно работать и в паскале! smile


--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
rsm
Дата 20.4.2005, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: 1
Всего: 62



Цитата
использовать типизированные константы-массивы с вопросами и ответами

Когда число ответов жестко ограничено тогда конечно можно.
Цитата
А все остальное должно работать и в паскале!

Спасибо за поправки, давненько на Паскале не колбасился, подзабыл малость что там и как smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0675 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.