Algoritmos e Estruturas de dados Flashcards
Estruturas de sequenciação, decisão e repetição. Modularização. Estruturas elementares de dados. Implementação em uma linguagem de alto nível.
Quando e por quem o C/C++ foi inventado?
A historia começa pela linguagem BCPL, desenvolvida por Martin Richards, a qual influenciou a linguagem B, inventada por Ken Thompson e esta levou ao desenvolvimento do C que teve inicio nos anos 70 por Dennis Ritchie. Em 1980 Bjarne Stroustrup acrescentou várias extensões à linguagem. Em 1983, o nome foi alterado para C++.
O que é um interpretador de comandos?
O interpretador lê o codigo fonte linha a linha, executando uma instrução por vez. Este sempre estará presente na execução do programa.
O que é um compilador?
Um compilador lê o programa inteiro e converte-o em um código executavel. Uma vez compilado o programa poderá ser executado sem a presença do compilador.
Qual a diferença entre tempo de compilação e tempo de execução?
Os termos estão ligados à erros sobre os eventos que acontecem durante a compilação ou execução do codigo-fonte, respectivamente.
O que é uma função em C?
É uma sub-rotina que contém uma ou mais declarações e realiza uma ou mais tarefas. Convencionou-se que uma função sempre possui parenteses, ex: somar().
Escreva o código abaixo utilizando uma função separada da função main.
#include
int main ()
{
printf (“meu primeiro programa em C!! \n”);
return 0;
}
include
void hello()
{
printf (“meu primeiro programa em C!! \n”);
}
int main () { hello(); return 0; }
O que é um argumento de uma função?
Como é chamada uma função que utiliza argumentos?
É um valor que é passado para a função no momento em que ela é chamada. São chamadas funções parametrizadas.
Escreva uma função que receba o valor 100 e calcule seu valor quadrático (1002)
include <cstdio></cstdio>
int square(int x)
{
printf (“%d elevado ao quadrado eh %d\n”, x, x * x);
}
int main () { int num = 100; square(num); return 0; }
Retorno de valores, escreva uma rotina mull() que calcule o produto entre 5 e 8 e retorne o valor para que a função main o exiba.
include <cstdio></cstdio>
int produto(int a, int b) { return(a \* b); }
int main () { int num; num = produto(5 , 8); printf ("O produto de 5 e 8 eh %d\n", num); return 0; }
O que deve ser observado sobre funções que retornam valores?
a variável que recebe o valor de retorno deve ser do mesmo tipo que o valor retornado. Quando não especificado, a linguagem C assume que é int.
Quais as regras para nomes de funções ou identificadores?
Devem começar com letras (a,A,…,z,Z) .
Em C, um identificador pode possuir até 32 caracteres.
A linguagem C é CaseSensitive.
Quais os 5 tipos de dados utilizados em C?
A linguagem C não possui cadeia de caracteres String. Para isso é utilizado um vetor de caracteres.
char - 8bits
int - 16bits
float - 32bits
double - 64bits
void - sem retorno
Quais são os modificadores de tipo utilizados em C e qual a função de cada um?
signed - extende a valores negativos e positivos
unsigned - limita a valores positivos
long - extende a capacidade de armezanamento
short - reduz a capacidade de armazenamento
O que são variáveis globais?
são declaradas fora do escopo das funções e podem ser acessadas por todas as funções do programa.
o que são variaveis locais?
são declaradas dentro de um bloco e estão restritas somente a esse bloco.
Como se define uma constante em C?
a definição é feita no inicio do programa e diz ao pre-compilador para substituir um nome por um valor
#define constante 8
O que são códigos de barra invertida?
são constantes especiais para uso específico:
\b - retrocesso
\n - Nova linha
\r - retorno de carro
\t - tabulação horizontal
\v - tabulação vertical
\a - sinal sonoro
" - imprime “
|’ - imprime ‘
O que são e quais são os operadores em C?
[Consulta]
É um simbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas. São divididos em três classes:
aritméticos: +, =, *, /, %,
relacionais: >, >=, <, <=, ==, !=,
lógicos: &&, ||, !
Operadores de Endereço:
& - endereço de uma variavel
* - conteudo do endereço
são utilizados com pointers para acesso a endereços de memória:
int var, *x; //declara a variavel var e o ponteiro *x
x = &var; // x recebe o endereço de var
var = *x; //var recebe o conteudo do endereço *x
O que são expressões em C?
É a combinação de operadores, constantes e variáveis.
O que se afirma em C quanto ao uso de parenteses e espaçamentos?
o uso de parenteses redundantes ou adicionais não causa erros ou diminuit a velocidade de execução da expressão. É interessante utilizá-los para facilitar a leitura do codigo.
Qual o esqueleto (estrutura) de um programa em C?
#include <cstdio></cstdio> //declara de bibliotecas e constantes
int produto; //declara variaveis globais
void func(); //declara protótipos de funções
- *int main ()** //declaração obrigatoria da função main
- *{**
int x; // declaracao de variaveis locais
// comandos da funcao principal
return 0;
}
//funções do programador
Regra de comandos e blocos
todo comando é finalizado com um ponto-virgula ;
todo bloco de comandos é definido entre chaves {}
Especificações de conversão em C utlizando scanf() ou prinf()
%d - Número decimal inteiro (int).
- *%i** - equivalente a %d.
- *%u** - Número decimal natural (unsigned int), ou seja, sem sinal.
- *%o** - Número inteiro representado na base octal.
- *%x** - Número inteiro representado na base hexadecimal.
- *%X** - Hexadecimal com letras maiúsculas
- *%f** - Número decimal de ponto flutuante.
- *%e** - Número em notação científica,
- *%E** - Número em notação científica com o “e”maiúsculo
- *%g** - Escolhe automaticamente o mais apropriado entre %f e %e.
- *%p** - Ponteiro: exibe o endereço de memória do ponteiro em notação hexadecimal.
- *%c** - Caractere: imprime o caractere que tem o código ASCII correspondente ao valor dado.
- *%s** - Sequência de caracteres (string, em inglês).
- *%%** - Imprime um %
//declara um espaço de nomes do std para não ter que declarar std::funcao em todas as funcoes do std, cin, cout, cerr
using namespace std;
// declara a classe
class fila
{ // por definição todos os item de uma classe são privados
int q[100];
int sloc, rloc;
public:
// para tornar um membro desse classe público, este deve vir apos essa linha
fila(); //construtor
~fila(); //destrutor
void qput(int i);
int qget(void);
};
//quando codificar uma função membro, deve ser informado a qual classe essa funcao pertence atraves do class::funcao