Foram encontradas 420 questões.
Assinale a alternativa que NÃO representa um tipo de diagrama estrutural da Linguagem UML (Unified Modeling Language), conforme Guedes (2009, pg. 338):
GUEDES, G. T. A. UML 2: Uma abordagem prática. Editora Novatec. 3º Ed. 657 pg. 2009.
Provas
Considere o código em Python apresentado a seguir:
num = 6
def calc(num) :
if num == 1:
return 1
return num * calc(num - 1)
Após realizar a chamada da função usando “print(cale(num))”, qual é o último valor retornado pelo programa na linguagem Python 3.11.0?
Provas
Assinale a alternativa que representa somente diagramas de interação da Linguagem UML (Unified Modeling Language), conforme Guedes (2009):
GUEDES, G. T. A. UML 2: Uma abordagem prática. Editora Novatec. 3º Ed. 657 pg. 2009.
Provas
- Engenharia de SoftwarePrincípios de Engenharia de Software
- Engenharia de SoftwareModelos de Desenvolvimento
Assinale a alternativa INCORRETA sobre conceitos de engenharia de software conforme Pressman (2016):
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional. 8 ed. Porto Alegre: AMGH Editora, 2016. 940 p.
Provas
Os modelos de processo prescritivo definem um conjunto prescrito de elementos de processo e um fluxode trabalho de processo previsível. (PRESSMAN, 2016, p. 41).
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional. 8 ed. Porto Alegre: AMGH Editora, 2016.
NÃO é um exemplo de modelo prescritivo segundo Pressman (2016):
Provas
- Fundamentos de ProgramaçãoEstruturas de DadosEstrutura de Dados: ÁrvoreÁrvore Binária
- Fundamentos de ProgramaçãoEstruturas de DadosEstrutura de Dados: ÁrvoreOperações em Árvores
- Fundamentos de ProgramaçãoEstruturas de DadosEstrutura de Dados: ÁrvorePercursos em Árvores
- Fundamentos de ProgramaçãoRecursividade
Utilize o código fonte em linguagem C seguinte para responder as questões 45 e 46.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* left;
struct Node* right;
};
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
struct Node* insert(struct Node* root, int data)(
if (root == NULL) {
return createNode(data);
}
if (data < root->data) (
root->left = insert(root->left, data);
Y else if (data > root->data) £
root->right = insert(root->right, data);
}
return root;
}
struct Node* search(struct Node* root, int key) {
if (root == NULL || root->data == key){
return root;
}
if (key < root->data) (
return search(root->left, key);
}
return search(root->right, key);
}
void list(struct Node* root) {
if (root != NULL) {
list(root->left);
printf("%d ”, root->data);
list(root->right);
}
}
int main() {
struct Node* root = NULL;
root = insert(root, 50);
root = insert(root, 20);
root = insert(root, 70);
root = insert(root, 20);
root = insert(root, 50);
list(root);
return 0;
}
Considere as seguintes três afirmações com base no código:
I - A função list() percorre a árvore e imprime os elementos em ordem crescente.
II - A função search() realiza uma busca recursiva na árvore binária e retorna um ponteiro para o nó que contém o elemento procurado, se encontrado.
III - A função list() não é recursiva.
Assinale a alternativa correta:
Provas
Utilize o código fonte em linguagem C seguinte para responder as questões 45 e 46.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* left;
struct Node* right;
};
struct Node* createNode(int data) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
struct Node* insert(struct Node* root, int data)(
if (root == NULL) {
return createNode(data);
}
if (data < root->data) (
root->left = insert(root->left, data);
Y else if (data > root->data) £
root->right = insert(root->right, data);
}
return root;
}
struct Node* search(struct Node* root, int key) {
if (root == NULL || root->data == key){
return root;
}
if (key < root->data) (
return search(root->left, key);
}
return search(root->right, key);
}
void list(struct Node* root) {
if (root != NULL) {
list(root->left);
printf("%d ”, root->data);
list(root->right);
}
}
int main() {
struct Node* root = NULL;
root = insert(root, 50);
root = insert(root, 20);
root = insert(root, 70);
root = insert(root, 20);
root = insert(root, 50);
list(root);
return 0;
}
Qual é o resultado apresentado pela execução do código?
Provas
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Classes e Objetos
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Herança
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Polimorfismo
O polimorfismo permite escrever programas que processam objetos que compartilham a mesma superclasse, direta ou indiretamente, como se todos fossem objetos da superclasse; isso pode simplificar a programação. Sobre esse tema, analise as afirmações a seguir:
I- Os métodos declarados com o modificador final podem ser sobrescritos, e as classes declaradas como modificador final não podem ser superclasses.
Il - O polimorfismo permite-lhe tratar as generalidades e deixar que o ambiente de tempo de execução trate as especificidades.
III - Uma classe abstrata declara atributos e comportamentos comuns (ambos abstratos e concretos) das várias classes em uma hierarquia de classes.
DEITEL, Harvey M. Java como programar. 8a ed. São Paulo - SP: Pearson Printice Hall, 2010.
Assinale a alternativa correta:
Provas
- Fundamentos de ProgramaçãoGrafosAlgoritmos em Grafos
- Fundamentos de ProgramaçãoGrafosMST: Árvore Geradora Mínima
Em relação a algoritmos de grafos, segundo Cormen (2012):
I - Se o grafo contém um ciclo, nenhuma ordenação topológica é possível.
Il - O algoritmo de Kruskal é usado para encontrar a árvore geradora mínima em um grafo.
III - O algoritmo de caminhos mínimos de Dijkstra considera que todos os pesos de arestas no grafo de entrada são não negativos.
CORMEN, Thomas H. Algoritmos: teoria e prática. Rio de Janeiro: Elsevier, 2012.
Assinale a alternativa CORRETA:
Provas
- Fundamentos de ProgramaçãoOperadoresOperadores Lógicos
- Fundamentos de ProgramaçãoOperadoresOperadores Relacionais
- Fundamentos de ProgramaçãoVariáveis
Os operadores são utilizados para representar expressões de cálculo, comparação, condição e atribuição.
Sobre esse tema, analise as afirmações a seguir:
|- Operadores de atribuição são utilizados para expressar o armazenamento de um valor em uma variável. Esse valor pode ser pré-definido (variante ou não) ou pode ser o resultado de um processamento.
Il - Operadores relacionais são utilizados para concatenar ou associar expressões que estabelecem uma relação de comparação entre valores.
IIl- Operadores lógicos são utilizados para estabelecer uma relação de comparação entre valores ou expressões.
Puga, Sandra. Lógica de programação e estruturas de dados, com aplicações em Java. 2.ed. São Paulo - SP: Pearson Prentice Hall, 2009.
Assinale a alternativa correta:
Provas
Caderno Container