Talvez a questão pudesse ser elaborada de outra forma, mas sem saber o que diz o material de apoio desse curso, não tenho como saber. Pode ser que, no contexto desse material, os termos usados sejam coerente.
Mas note que, nesse contexto, juntos significa intrinsecamente ligados, ou seja, atributos e comportamentos não podem existir separadamente. Por exemplo, em OO:
class Conta{
float saldo;
boolean sacar(float valor){
if (valor > saldo) {
return false;
}
saldo -= valor;
return true;
}
}
Veja que o método (comportamento) sacar() depende da existência de um objeto do tipo conta, e que ele está ligado ao atributo saldo. Não tem como chamar o método sacar sem um objeto Conta associado:
void fazAlgumaCoisa(){
sacar(10); // não funciona
Conta c = new Conta();
c.sacar(10); // agora funciona
}
Já em programação procedural, você pode ter um comportamento isolado que opera sobre uma estrutura, ou mesmo sobre uma variável isolada, mas não há uma relação forte de dependência entre elas:
struct Conta{
float saldo;
}
boolean sacar(Conta c, float valor){ // note que é preciso passar como parâmetro a estrutura sobre a qual estamos operando
if (c.saldo < valor){ // porque a função sacar não está ligada à nenhuma estrutura
return false;
}
c.saldo -= valor;
return true;
}
void fazAlgumaCoisa(){
Conta c;
Conta d;
sacar(c, 10); // a mesma função sacar() pode ser chamada sob estruturas diferentes
sacar(d, 20); //
}
Veja que a função sacar agora está independente da existência de uma estrutura Conta, podendo inclusive estar em outro arquivo.
Abraço.