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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2010, 22:18   #1
*Марусенька*
Новичок
Джуниор
 
Регистрация: 13.01.2010
Сообщений: 3
Восклицание задачи по паскалю!!!!

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


вот они следующие!:
1. Составить тест, состоящий из 10-ти вопросов. Программа должна выводить вопросы, спрашивать ответы на вопросы и выводить оценку. (Примерные темы для теста: таблица умножения, сложение, вычитание, основы информатики, и т.д.). Можно использовать циклический алгоритм и генератор случайных чисел.

2. Написать программу, которая проверяет ввод пароля и выводит соответствующее сообщение («Неправильный пароль, попробуйте еще раз» или «Пароль верный, вы получили доступ»). Пароль задать константой в виде строковой величины с использованием строчных и прописных букв (пароль минимум 5 символов). Для неоднократной проверки использовать циклический алгоритм. После трехкратного неправильного ввода, программа должна закончить работу и вывести сообщение «Система заблокирована».

3. Пользователем вводится любая символьная строка и координаты курсора, с которых следует это слово вывести на экране. Над словом и под словом должны быть выведены символы для украшения (Символ вводит пользователь, количество выводимых символов должно быть больше длины строки на 2).

Пример выполнения программы:

*******
slovo
*******



4. Вывести на экран таблицу значений функции y=x4 при изменении x от 3 до 13 с шагом 0,2. Числа должны выводиться с 2 знаками после десятичной точки. Вид таблицы должен быть следующий:

0 0,2 0,4 0,6 0,8
3
4
………………………………………………………………
13






заранее Всем огромное спасибо!!!!
*Марусенька* вне форума Ответить с цитированием
Старый 14.01.2010, 12:51   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
2. Написать программу, которая проверяет ввод пароля и выводит соответствующее сообщение («Неправильный пароль, попробуйте еще раз» или «Пароль верный, вы получили доступ»). Пароль задать константой в виде строковой величины с использованием строчных и прописных букв (пароль минимум 5 символов). Для неоднократной проверки использовать циклический алгоритм. После трехкратного неправильного ввода, программа должна закончить работу и вывести сообщение «Система заблокирована».
Код:
program zad1;
const pas='gAhyrA';
var s:string;
i,l:integer;
begin
writeln('введите пароль');
for i:=1 to 3 do
begin
readln(s);
if s=pas then
begin
inc(l);
writeln('Пароль верный, вы получили доступ');
break;
end
else writeln('Неправильный пароль, попробуйте еще раз')
end;
if l=0 then writeln('Система заблокирована.');
end.
Цитата:
3. Пользователем вводится любая символьная строка и координаты курсора, с которых следует это слово вывести на экране. Над словом и под словом должны быть выведены символы для украшения (Символ вводит пользователь, количество выводимых символов должно быть больше длины строки на 2).

Пример выполнения программы:

*******
slovo
*******
Код:
program zad1;
var
s:string;
c:char;
a,i:integer;
begin
writeln('введите слово');
readln(s);
writeln('с какой позиции выводить слово?');
readln(a);
writeln('введите символ для украшения');
readln(c);
write(c:a);
for i:=1 to length(s)+1 do
write(c);
writeln;
write(s:a+length(s)-1);
writeln;
write(c:a);
for i:=1 to length(s)+1 do
write(c);
end.
Цитата:
4. Вывести на экран таблицу значений функции y=x4 при изменении x от 3 до 13 с шагом 0,2. Числа должны выводиться с 2 знаками после десятичной точки. Вид таблицы должен быть следующий:

0 0,2 0,4 0,6 0,8
3
4
………………………………………………………………
13
Код:
program zad1;
var
x,y:real;
j:integer;
begin
x:=3;
while j<>65 do
begin
y:=x*4;
writeln('при x=',x,' y=',y:0:2);
x:=x+0.2;
inc(j)
end;
end.
Цитата:
1. Составить тест, состоящий из 10-ти вопросов. Программа должна выводить вопросы, спрашивать ответы на вопросы и выводить оценку. (Примерные темы для теста: таблица умножения, сложение, вычитание, основы информатики, и т.д.). Можно использовать циклический алгоритм и генератор случайных чисел.
могу решить, через условный оператор, без использования циклов и рандома, пойдет?
т.е. будут задаваться вопросы, а потом в конце выведется оценка по 5-ти бальной системе, напиши если надо будет решить, просто как через циклы и рандома в голову не приходит
Код:
program zad1;
var
st:string;
s,n:integer;
begin
Writeln('       тест на тему таблица умножения');
writeln('сколько будет 2*2 ?');
readln(s);
if s=4 then inc(n);
writeln('сколько будет 14*14 ?');
readln(s);
if s=194 then inc(n);
writeln('как по другому называют таблицу умножения ? p.s. ответ вводите с заглавной буквы');
readln(st);
if (st='Пифагора') or (st='Кэли') then
inc(n);
writeln('сколько будет 5*7 ?');
readln(s);
if s=35 then inc(n);
writeln('сколько будет 6*4 ?');
readln(s);
if s=24 then inc(n);
writeln('сколько будет 8*9 ?');
readln(s);
if s=72 then inc(n);
writeln('сколько будет 7*7 ?');
readln(s);
if s=49 then inc(n);
writeln('сколько будет 6*6 ?');
readln(s);
if s=36 then inc(n);
writeln('сколько будет 16*16 ?');
readln(s);
if s=256 then inc(n);
writeln('до каких значений изучают в российских школах таблицу умножения?');
readln(st);
if st='10*10' then inc(n);
if (n=10) or (n=9) then writeln('ваша оценка по тесту 5');
if (n=8) or (n=7) then writeln('ваша оценка по тесту 4');
if (n=6) or (n=5) then writeln('ваша оценка по тесту 3') else
if (n=4) or (n=3) then writeln('ваша оценка  по тесту 2 ');
if (n=2) or (n=1) or (n=0) then writeln('ваша оценка по тесту 1');
end.

Последний раз редактировалось Базиля; 14.01.2010 в 13:03.
Базиля вне форума Ответить с цитированием
Старый 14.01.2010, 14:30   #3
*Марусенька*
Новичок
Джуниор
 
Регистрация: 13.01.2010
Сообщений: 3
Смущение

Базиля, спасибочки, Тебе, огромное !!!! Ты просто не представляешь как Ты мне помог! ОГРОМНОЕ СПАСИБО!!!! если не трудно - напиши через условный оператор!!!!
*Марусенька* вне форума Ответить с цитированием
Старый 14.01.2010, 16:30   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Цитата:
4. Вывести на экран таблицу значений функции y=x4 при изменении x от 3 до 13 с шагом 0,2. Числа должны выводиться с 2 знаками после десятичной точки. Вид таблицы должен быть следующий:

0 0,2 0,4 0,6 0,8
3
4
………………………………………………………………
13
вот эту задачу исправь пожалуйста, я ошибку там допустил, вот праильный код
Код:
program zad1;
var
x,y:real;
j:integer;
begin
x:=3;
while j<>13 do
begin
y:=x*4;
writeln('при x=',x,' y=',y:0:2);
x:=x+0.2;
j:=trunc(x);
end;
end.
А задачу на тест я добавил в предыдущий пост.
Базиля вне форума Ответить с цитированием
Старый 14.01.2010, 17:24   #5
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

вот мои варианты:

1) интересное решение для Turbo Pascal:
Код:
program Text;
uses
    Crt;
var
   I, X, Y, Answer, R: Integer;
begin
     Randomize;
     ClrScr;
     TextColor(White);
     TextBackground(Black);
     WriteLn('Answer questions');
     WriteLn;
     R := 0;
     for I := 1 to 10 do
     begin
          X := 1 + Random(10);
          Y := 1 + Random(10);
          Write(I, ') ', X, ' x ', Y, ' = ');
          ReadLn(Answer);
          if Answer = X * Y then
          begin
               Inc(R);
               TextColor(LightGreen);
               WriteLn('Accept');
               TextColor(White);
          end
          else
          begin
               TextColor(LightRed);
               WriteLn('Incorrect');
               TextColor(White);
          end;
     end;
     WriteLn;
     WriteLn('Quantity of right answers: ', R);
     Writeln('Mark: ');
     if R = 10 then Write(5)
     else if R > 8 then Write(4)
     else if R > 5 then Write(3)
     else Write(2);
     ReadKey;
end.
то же самое, без изменения цветов:
Код:
program problem1;
var
   I, X, Y, Answer, R: Integer;
begin
     Randomize;
     WriteLn('Answer questions');
     WriteLn;
     R := 0;
     for I := 1 to 10 do
     begin
          X := 1 + Random(10);
          Y := 1 + Random(10);
          Write(I, ') ', X, ' x ', Y, ' = ');
          ReadLn(Answer);
          if Answer = X * Y then
          begin
               Inc(R);
               WriteLn('Accept');
          end
          else
               WriteLn('Incorrect');
     end;
     WriteLn;
     WriteLn('Quantity of right answers: ', R);
     Writeln('Mark: ');
     if R = 10 then Write(5)
     else if R > 8 then Write(4)
     else if R > 5 then Write(3)
     else Write(2);
     ReadLn;
end.
2)
Код:
program problem2;
const
     Password = 'password';
var
   S: String;
   I: Integer;
begin
     WriteLn('Enter the password');
     for I := 1 to 3 do
     begin
          ReadLn(S);
          if (S <> Password) and (I = 3) then WriteLn('The password incorrect. The system is blocked')
          else if S = Password then
          begin
               WriteLn('The password is accepted');
               Break;
          end
          else WriteLn('The password incorrect. Try again');
     end;
     ReadLn;
end.
4)
Код:
program problem4;
var
   X, Y: Real;
   I: Integer;
begin
     X := 3;
     WriteLn('X      |  Y');
     I := 1;
     while X <= 13 do
     begin
          Y := X * 4; { а не Sqr(Sqr(X)) ??? }
          WriteLn(X:0:2, '   |  ', Y:0:2);
          X := X + 0.2;
          Inc(I);
          if I mod 24 = 0 then ReadLn;
     end;
     ReadLn;
end.
Alex_FF вне форума Ответить с цитированием
Старый 14.01.2010, 17:45   #6
*Марусенька*
Новичок
Джуниор
 
Регистрация: 13.01.2010
Сообщений: 3
Смущение

А Вы можете еще помочь с двумя задачами, только для моей подруги? Пожалуйста!


1. Написать программу, которая по заданному трехзначному числу выводит словесную запись соответствующего ему количественного числительного. Например, если задано число 908, то программа должна вывести сообщение ДЕВЯТЬСОТ ВОСЕМЬ.


2. Определить, является ли введенное слово палиндромом (т.е. читается слева-направо и справа-налево одинаково). Например: kazak, казак, поп, потоп и т.д.



Заранее спасибо от меня и от моей подруги!
*Марусенька* вне форума Ответить с цитированием
Старый 14.01.2010, 18:04   #7
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Alex_FF
в 4-ой задаче, в цикле while стоит х которое является вещественным типом, это недопустимо, произойдет зацикливание.
Базиля вне форума Ответить с цитированием
Старый 14.01.2010, 18:23   #8
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Alex_FF
в 4-ой задаче, в цикле while стоит х которое является вещественным типом, это недопустимо, произойдет зацикливание.
и кто же вам такое сказал?
читаем help:
Цитата:
while (reserved word)
‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗‗
A while statement contains an expression that
controls the repeated execution of a singular
or compound statement.

Syntax:
while expression do statement

Remarks:
The statement after do is executed repeatedly
as long as the Boolean expression is True.

The expression is evaluated before the
statement is executed, so if the expression is
False at the beginning, the statement is not
executed.
и где тут что-то написано про вещественные числа?
здесь написано, что цикл выполняется до тех пор, пока булево выражение истинно.
У меня написано X <= 13, учитывая, что X у меня на каждой итерации увеличивается, то зацикливание никогда не произойдет в принципе, так как стоит знак "<". Другое дело, что при проверке на равенство вещественных чисел нужно использовать что-то типа if Abs(X - Y) < epsilon, но в этой задаче и без этого всё обходится.
Alex_FF вне форума Ответить с цитированием
Старый 14.01.2010, 18:28   #9
Сухарь
Новичок
Джуниор
 
Регистрация: 14.01.2010
Сообщений: 4
По умолчанию

Товарищи, мне нужна ваша помощь!
Задача такова: Дан массив с генератором случайных чисел от 1 до 23, нужно вести число и найти 3 числа больше веденного...
Помогите, прошу Вас!
Сухарь вне форума Ответить с цитированием
Старый 14.01.2010, 18:30   #10
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Alex_FF
мда... проверил задачу, все нормально, извиняюсь, просто как-то сталкивался с тем что, в булевском выражении стояла переменная вещественного типа, было зацикливание, как только поменял ее на целочисленную, все стало нормально. Само условие для выхода из цикла было поставлено верно
Базиля вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи по Паскалю. cone4ka Помощь студентам 6 30.10.2009 20:06
Задачи по Паскалю Geldor Помощь студентам 6 03.06.2009 22:16
2 задачи по Паскалю Павел Я Помощь студентам 27 18.03.2009 20:27
Задачи по Паскалю koshkarjov Помощь студентам 2 02.02.2009 18:06
Задачи по Паскалю MissLove Помощь студентам 15 24.07.2007 11:20