IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Заглушки и драйверы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Начал изучать паскаль модульной структуры и услышал такой термин как заглушки .Как я понял небольшая программа для тестирования процедур при .
Хотелось бы посмотреть какой-нибудь пример.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Драйверы и заглушки это программы, которые используют для проверки тестовых наборовданных (вобщемдл ятестирвоания).
Драйвер это программа, тестирующая какой-то модуль, (технология восходящего тестирования), то есть программа вызывает например какую-то процедуру из тестируемого модуля ипроверяет входные данные и наболр выходных.

А заглушка это программа которая служит для утановки вместо какого-то модуля (тестирование нисходящее).
Пример


uses A;
var c:byte;
begin
readln©
writeln(F©);
end.


модуль B

Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
f:=x*2;
end;
end.


Тогда при тестирвоании нисходящшем, мы начинаем тестысглавнойпрограммы, идолжны сделать заггушку для модуля B, она будет выглядеть так примерно..


Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
writeln('подключенна заглугшка');
f:=10;
end;
end.



ТО есть она уже готовыеданные поставляет, в соотвествии стестом придуманным.
А драйвер к модулю B будет таким:

uses A;
begin
writeln(F(5));
end.



Serega18, а где ты учишься?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


МЭИ
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Апо какой вы книге занимаетесь?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Просто про это очень хорошо рассказанно в книге
Майерс Г. "Искуство тестирования программ" ...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Задачник(Зубов,Котарова) и пяток методичек. и все
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


По ходу дела возник вопрос: у тебя в примере function а если будет procedure
от этого что-нибудь изменится?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата(Serega18 @ 4.06.05 14:37)
а если будет  procedure от этого что-нибудь изменится?

В общем случае - нет. На процедуру точно так же можно ставить заглушку, но
uses A;
begin
writeln(F(5));
end.
сделать это с процедурой F уже будет проблематично... ;)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


А если б в модуле В было бы условие вроде этого
Код
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
if X>5 then
 f:=x*2;
end;
end.

То в заглушке было бы так?
Код
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
if x>5 then
 writeln('подключенна заглугшка');
  f:=10;
end;
end.

или останется как и было?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Да в модуле (в функции) - хоть десяток условий. Заглушка останется такой же. Условия будешь проверять, когда будешь отлаживать саму функцию, а здесь идет отладка главной программы ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


значит я сначала делаю одну заглушку для основной программы а потом еще n-ое число для всех процедур?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Когда ты переходишь к тестированию функции - делаешь заглушки для всего, что она использует, и на ИЗВЕСТНЫХ наборах данных (ведь заглушка возвращает то, что ты ей сказал вернуть) тестируешь работу этой функции...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Код
Unit B;
Interface
function F(x:byte):byte;
implementation
function f(x:byte):byte;
begin
 writeln('подключенна заглугшка');
  f:=10;
end;
end.

1)В данном примере F:=10 ,а если б была матрица A[i,j] то как это записать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Что значит "матрица"? Результат функции? Так Turbo Pascal не позволяет возвращать результаты такого типа.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  0  +


Ну например в предыдущей задаче у меня была процедура(поменять местами столбец первый с indx)в результате эта процедура передавала матрицу измененную.В модульной структуре я загоняю ее в модуле В(например). В этом случае как быть?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Procedure change_rows(Var After, Before: matrix);
begin
writeln('Заглушка');
After := Before; { просто вернуть исходную матрицу }
end;

Это тебя чем не устраивает? Пойми, никаких действий в заглушке производить нельзя, на то она и заглушка а не простая функция !!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата(volvo @ 4.06.05 15:51)
Procedure change_rows(Var After, Before: matrix);
begin
  writeln('Заглушка');
  After := Before; { просто вернуть исходную матрицу }
end;

Это тебя чем не устраивает? Пойми, никаких действий в заглушке производить нельзя, на то она и заглушка а не простая функция !!!

А как будет выглядеть заглушка в случае входного данного массива двумерного, а выходного - одномерного массива и флажка?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






Цитата(volvo @ 4.06.05 21:43)
Пример функции приводи, когда что-то спрашиваешь... Я не телепат, догадываться, что имеется в виду...

В общем в подпрограмме нужно вывести массив одномерный с номерами столбцов матрицы, в которых все эл-ты расположены в порядке возрастания эл-ов. И если такой столбец есть флажку присвоить истину.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Ты заголовок подпрограммы привести можешь? angry.gif Или так и будем гадать? Откуда я знаю, КАК твоя подпрограмма должна "вывести" одномерный столбец, через параметры, или на печать через WriteLn ??
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.01.2022 4:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name