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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2016, 12:33   #1
Alexanderz
Новичок
Джуниор
 
Регистрация: 17.05.2016
Сообщений: 1
Лампочка Помогите с TP7 - тест на умение умножать числа

Условие: компьютер формирует 2 случайных сомножителя при помощи функции random, выводит вопрос на экран, а затем сравнивает ответ введенный с клавиатуры с правильным значением. В результате используется оператор цикла, получается полноценная программа тестирования, которая будет выдавать результаты тестирования. Инструкции для вывода результата тест выполняет после выхода из цикла. s1, s2 - сомножители, otvet - переменная в которую запишется ответ пользователя, kol - количество заданных вопросов, prav - количество правильных ответов.

Первый раз пользуюсь паскалем и уже потратил целый час на выполнение этой программы вот код который я написал:

Код:
program k9;

uses CRT;
var

s1, s2, otvet, kol, prav:integer;
yn:char;

begin
	clrscr;
	randomize;
		repeat
		kol:=0;
		prav:=0;
		s1:=random(10);
		s2:=random(20);

			writeln('What is ',s1,'*',s2,'?');
			readln(otvet);
				if otvet=s1*s2 then
					begin
						writeln('Yes!');
						kol:=kol+1;
						prav:=prav+1;
					end
				else
					writeln('No. You want to continue test? (Y/N)');
					kol:=kol+1;
					readln(yn);
						if (yn = 'n') or (yn = 'N') then
							begin
								writeln('Results: ');
								writeln('Total questions: ',kol,';');
								writeln('Total true questions: ',prav,'.');
							end;
		until (yn = 'y') or (yn = 'Y');
	readkey;
end.
В итоге на экран выводит немного не то, что нужно для полноценной рабочей программы тестирования, помогите исправить ошибки!
Alexanderz вне форума Ответить с цитированием
Старый 17.05.2016, 12:57   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
if otvet=s1*s2 then
					begin
						writeln('Yes!');
						kol:=kol+1;
						prav:=prav+1;
					end
				else
BEGIN
					writeln('No. You want to continue test? (Y/N)');
					kol:=kol+1;
					readln(yn);
END;
						if (yn = 'n') or (yn = 'N') then
							begin
								writeln('Results: ');
								writeln('Total questions: ',kol,';');
								writeln('Total true questions: ',prav,'.');
							end;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 17.05.2016 в 13:08.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.05.2016, 15:47   #3
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Alexanderz, с некоторой долей вероятности, ошибка произошла от неудачного форматирования исходника.
В состав IDE некоторых компиляторов (PascalABC.NET, FreePascal - Lazarus) входит штатная утилита форматирования.
А можно воспользоваться отдельной бесплатной программой - JCF (Jedi Code Format).

Попробуйте форматировать периодически - ошибок станет меньше.
FPaul вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умение программировать под Windows и Unix Astat Помощь студентам 10 26.08.2014 15:38
программа в TP7 D1zz1 Помощь студентам 5 05.06.2011 23:47
tp7 на семерке Fi11eR Паскаль, Turbo Pascal, PascalABC.NET 3 19.12.2009 01:12
Помогите разобраться: как в екселе умножать прогресивное начисление??? macco Microsoft Office Excel 2 02.12.2008 12:14