cblc/exercicios/06/README.org

116 lines
2.3 KiB
Org Mode

#+title: Curso Básico da Linguagem C
#+subtitle: Exercícios
#+author: Blau Araujo
#+startup: show2levels
#+options: toc:3
* Exercícios da aula 6: Vetores
- [[../../aulas/06-vetores/README.org][Anotações da aula]]
- [[https://youtu.be/W5TGNQYFs4E][Vídeo]]
** 1. Desafio: Função =print_array_shift=
Dado o programa abaixo:
#+begin_src c
#include <stdio.h>
int main(void) {
int vetor[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int desloca = ???; // <--- inicializar com o valor do deslocamento!
print_array_shift(/* ??? */);
return 0;
}
#+end_src
Escreva a função =print_array_shift= de acordo com essa descrição:
#+begin_example
PROTÓTIPO:
void print_array_shift(int *arr, int size, int shift);
DESCRIÇÃO:
Desloca para a esquerda os elementos do vetor 'arr', de tamanho 'size',
em 'shift' posições e imprime os valores na sequência resultante.
#+end_example
No teste, programa deverá imprimir no terminal:
#+begin_example
:~$ ./a.out
6 7 8 9 10 1 2 3 4 5
#+end_example
** 2. Desafio: Função =array_shift=
Dado o programa abaixo:
#+begin_src c
#include <stdio.h>
int main(void) {
int vetor[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int desloca = ???; // <--- inicializar com o valor do deslocamento!
array_shift(/* ??? */);
/* Rotina de impressão do resultado do deslocamento */
return 0;
}
#+end_src
Crie a função =array_shift= de acordo com a descrição abaixo:
#+begin_example
PROTÓTIPO:
void array_shift(int *arr, int size, int shift);
DESCRIÇÃO:
Desloca para a esquerda os elementos do vetor 'arr', de tamanho 'size',
em 'shift' posições.
#+end_example
A saída do teste deve ser a mesma do desafio anterior.
** 3. Desafio: Função =array_reverse=
Dado o programa abaixo:
#+begin_src c
#include <stdio.h>
int main(void) {
int vetor[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
/* Rotina da impressão do vetor original */
array_reverse(/* ??? */);
/* Rotina de impressão do vetor invertido */
return 0;
}
#+end_src
Escreva a função =array_reverse= de acordo com a descrição abaixo:
#+begin_example
PROTÓTIPO:
void array_reverse(int *arr, int size);
DESCRIÇÃO:
Inverte a ordem dos elementos do vetor 'arr'.
#+end_example
O teste deverá imprimir...
#+begin_example
:~$ ./a.out
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
#+end_example