Você está na página 1de 4

1ª.

Prova de Introdução à Ciência da Computação


Turma de Engenharia de Produção

03/03/2022

1. Reproduza todos os passos de ordenação dos números 85, 72, 50, 5, 13, 36, 28, 9
utilizando o algoritmo Merg sort. Explique como é o funcionamento do algoritmo Bubble
sort e do Selection sort. Nesses dois últimos casos mostre que ambos são O(n2) (1,5 ponto)

2. Analise e resolva: (2,5 pontos)

a. Responder (1,0 ponto):


i. Existem linguagens de programação compiladas e outras linguagens interpretadas. Qual a
diferença entre elas? Dê exemplos.
ii. Qual a desvantagem de se utilizar variáveis globais?
iii. Suponha que você utilizará o valor 10 em vários locais do seu programa. Por que você deve
declarar e utilizar uma constante e não uma variável? Qual é a diferença entre essas
utilizações?
iv. Qual o objetivo de se utilizar funções em programas? Declaramos as funções no início de
um programa e as desenvolvemos após o término da função main. Por que não desenvolvemos
a função logo no início do programa, então?
v. Explique como usar uma função recursiva para resolver o problema do cálculo do fatorial
de um número.

b. Explique por que o programa a seguir não funciona. (0,5 ponto)

#include <stdio.h>

void swap(int a, int b);

int
main(void)
{
int x = 1, y = 2;
printf("x eh %d e y eh %d\n", x, y);
printf("Trocando...\n");
swap(x, y);
printf("x agora eh % e y eh %d\n", x, y );
}

void
swap(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
c. Faça comentários explicando detalhadamente cada parte dos programas a seguir (1,0
ponto)

#include <cc50.h>

#include <stdio.h>

#define NUM_EXAM 4 COMENT 1.1

int

main(void)

float grades[NUM_EXAM]; COMENT 1.2

printf("\nQuais foram suas notas?\n\n");

for (int i = 0; i < NUM_EXAM; i++)

printf("Prova #%d de %d: ", i+1, NUM_EXAM); COMENT 1.3

grades[i] = GetFloat();

float sum = 0;

for (int i = 0; i < NUM_EXAM; i++)

sum += grades[i]; COMENT 1.4

int average = (int) (sum / NUM_EXAM + 0.5); COMENT 1.5

printf("\nSua média foi: %d\n\n", average);

}
#include <stdio.h>

int

main(int argc, char *argv[])

for (char c = 'A'; c <= 'Z'; c = (char) ((int) c + 1)) COMENT 2.1

printf("%c: %d\n", c, (int) c);

#include <stdio.h>

int

main(int argc, char *argv[]) COMENT 3.1

for (int i = 0; i < argc; i++) COMENT 3.2

int j = 0;

while (argv[i][j] != '\0')

printf("%c\n", argv[i][j]); COMENT 3.3

j++;

printf("\n");

}
#include <cc50.h>

#include <stdio.h>

Int

main(void)

bool agradecido = false; COMENT 4.1

do

{
printf("Eu ordeno que você me dê um inteiro positivo: ");

if (GetInt() > 0) COMENT 4.2

agradecido = true;

while (!agradecido);

printf("Obrigado pelo inteiro positivo!\n");

Você também pode gostar