C

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar

Revisao de C/C++

A linguagem C/C++ eh a base de todas as outras linguagens. Esta wiki fornece um caminho rapido para aprende-la.

  1. Leitura sugerida: livro Kernighan and Ritchie The Ansi-C programming Language (K&R)


Caminho da Iluminacao

  1. Assistir aos videos de revisao de C (mesmo sem entender tudo): https://www.youtube.com/watch?v=Gru0DnXWr0g, https://www.youtube.com/watch?v=k0KfKildD-U
  1. Marcar com prof. Fabbri pra ele apresentar a parte 3, que nao esta online
  2. Progressao de exercicios para aprender (fazer leitura sob demanda)
    1. Aquecimento: Para acostumar com a IDE de sua preferencia, escreva um programa que imprime "hello, world!" 10 vezes na tela.
    2. Aquecimento: Fazer exercicio de conversao de Celsius para Farenheit, iniciando de 100 para baixo. Se voce ja sabe programar, tente fazer sozinho antes de olhar a solucao no livro. (exercicio 1-4 do livro K&R (p.16 do PDF), so que de tras pra frente).
    3. Aquecimento: Escreva um programa que eleva um numero inteiro (base) a um outro numero inteiro (expoente). Utilize uma funcao e realize entrada e saida do teclado. Faca uma solucao sem a funcao pow e outra com.
    4. Ordenacao por lookup table. Ordene um vetor de inteiros, cada um de 0 a um valor maximo 16000.
    5. Maximo e minimo de vetor: Escreva um programa que calcula o maior e o menor elemento de um vetor de inteiros. Forneca a uma solucao sem recursao, e a outra usando recursao. Utilize funcoes para calcular o maximo e o minimo.
    6. Ordenacao por maximo: Escreva um programa que ordena um vetor de inteiros utilizando a funcao maximo implementada no exercicio anterior. A cada passo, insere o valor maximo.
    7. Ordenacao - operacao merge: dados dois vetores de inteiros ordenados, escreva uma funcao que junte os dois em um unico vetor ordenado.
    8. Ordenacao: implemente o insertion sort. Otimize o codigo para ter o minimo numero de comparacoes. Compare sua solucao com o livro programmin Pearls)
    9. Milestone 1: Faca o exercicio de histograma vertical - K&R 1-13, segunda parte (p. 25 do PDF). Primeiro facao o horizontal.
    10. Bitwise: escreva um programa para determinar se um inteiro nao-negativo x eh potencia de 2, e, caso afirmativo, retorne o expoente.
    11. Bitwise: escreva a funcao getbits do K&R logo antes do Exercicio 2-6 (pagina 47 do PDF), e um programa para testa-la.
    12. Bitwise: escreva a funcao setbits do K&R Exercicio 2-6 (pagina 47 do PDF), e um programa para testa-la.
    13. Milestone 2: Labirinto - ver TC [1]
    14. Opcional: implementar busca binaria de um vetor ordenado de floats
    15. Opcional: implementar merge sort e quick sort

Exame de Tecnicas Computacionais do IPRJ

  1. Progressao de exercicios para praticar para a prova
    1. Escreva um programa cuja para encontrar a sequencia "171" dentre os digitos de um numero inteiro. A entrada deve um numero inteiro, e a saida 1 caso os digitos 171 aparecem em sequencia na representacao decimal nesse numero, 0 caso contrario.
    2. Escreva um programa que multiplica duas matrizes A 3x6 e B 6x3 de inteiros.
    3. Escreva um programa cuja entrada eh um numero inteiro, e que imprime 1 caso as somas dos digitos for maior que 10, e 0 caso contrario. Utilize uma funcao que toma um numer inteiro como entrada, e cuja saida eh true ou false, dependendo se a soma dos digitos for maior que 10 ou nao.
    4. Escreva um programa usando uma funcao para calcular o minimo multiplo comum entre dois inteiros positivos
    5. Escreva um programa cuja entrada eh uma matriz NxN e imprime na tela a soma das linhas, a soma das colunas, e a soma de todas as diagonais.

Entrevistas em Empresas (em especial Google)

Alem do roteiro acima, estudar os seguintes livros:

  • Programming Pearls
  • Livro de algoritmos de Tardos & Kleinberg
  • Livro de algoritmos do Skiena