Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Ciência de Computação DCC003 -- Algoritmos e Estruturas de Dados 1 -- 2013/1 -- Turma F Prática 4 -- Prática em C ############################################################################### INSTRUÇÕES: Salve suas soluções num arquivo .c (o nome está indicado entre parênteses no cabeçalho de cada exercício) e entregue no Moodle. Coloque um comentário na primeira linha do arquivo contendo os nomes dos alunos da dupla. (Um comentário em C é qualquer texto entre /* e */.) Para ler uma string de até 127 caracteres do teclado, use o seguinte código: char linha[128]; printf("digite uma linha:\n"); fgets(linha, 128, stdin); Para gerar um número aleatório em C entre 0 e RAND_MAX use a função rand() definida dentro de stdlib.h: #include /* no começo do arquivo */ int aleatorio = rand(); /* em qualquer ponto no programa */ Exercício 1 -- Detector de palíndromos (palimdromo.c) ######################### Implemente código C para testar se uma cadeia de caracteres (string) é um palíndromo. Úm palíndromo é uma palavra idêntica quando lida de trás para frente, como "arara", "radar" e "reviver". Exercício 2 -- Manipulação de vetores (manip.c) ############################### Faça um programa que leie um vetor de números inteiros (pergunte antes quandos números serão digitados). Imprima o menor e o maior elemento do vetor. Imprima também a média do vetor. Por fim, indique se o vetor está ordenado em ordem crescente ou não. Dica: você pode incluir o cabeçalho limits.h (#include ) para usar as variáveis INT_MIN e INT_MAX, úteis quando estamos querendo obter o maior e o menor itens de um arranjo, respectivamente. Exercício 3 -- Concatenação (concat.c) ######################################## Faça um programa que leia dois vetores v1 e v2 com n1 e n2 elementos do tipo 'int', respectivamente. Assuma que os elementos dos vetores v1 e v2 estão em ordem crescente. Escreva um programa que junte os vetores v1 e v2 no vetor v3 de forma que os elementos de v3 estejam e ordem crescente. Note que v3 deve ter espaço para armazenar pelo menos n1 + n2 elementos. Para testar seu programa, imprima os elementos do vetor v3. Exercício 4 -- Apontadores (apontadores.c) #################################### Faça um programa que lê um string s1 e um caracterece c do teclado. Seu programa deve declarar um arranjo de ponteiros para caracteres. Esse arranjo de ponteiros para caracteres deverá armazenas ponteiros para todas as ocorrências do caractere c no string s1. Marque o final das ocorrências de c no string s1 armazenando um ponteiro NULL arranjo de ponteiros. Por exemplo, se s1 = "stringsinistro"; c = 's'; Então o arranjo deve ter três elementos inicializados (o primeiro deles com o valor de s1) e o quarto elemento deve ser NULL. Para testar seu programa, percorra o arranjo de ponteiros e imprima os caracteres apontados.