Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2017-1"
Linha 569: | Linha 569: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{collapse top | Gerando números pseudo-aleatórios}} | {{collapse top | Gerando números pseudo-aleatórios}} | ||
*Pergunta: é possivel que um computador binario utilizando apenas recursos computacionais seja puramente aleatorio? | *Pergunta: é possivel que um computador binario utilizando apenas recursos computacionais seja puramente aleatorio? | ||
Linha 625: | Linha 601: | ||
O vetor de tamanho variável (variable lenght array) é um recurso do C que permite que o tamanho do vetor seja definido em tempo de execução. Na prática o C irá alocar uma quantidade de memória que não precisa estar definida antes da execução. | O vetor de tamanho variável (variable lenght array) é um recurso do C que permite que o tamanho do vetor seja definido em tempo de execução. Na prática o C irá alocar uma quantidade de memória que não precisa estar definida antes da execução. | ||
[https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Variable-Length.html variable-lenght] | [https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Variable-Length.html variable-lenght] | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Exercícios - C (série 2)}} | ||
+ | *#Implementar um programa em C para ler 10 números reais (float) para um vetor. Usar o comando ''while''. | ||
+ | *#Modificar o exercício para computar a média dos 10 números que estão no vetor. | ||
+ | *#Modificar o exercício anterior para computar a quantidade de números do vetor que estão acima da média. | ||
+ | *#Refazer os exercícios anteriores usando o comando for; | ||
+ | *#Implemente um algoritmo em C que solicita do usuário 10 números, após a leitura mostra ao usuários os números na ordem inversa em que foram digitados | ||
+ | *#Teste o exemplo dado na apostila da UFMG página 46 e execute a AUTO AVALIAÇÂO sugerida na página seguinte. | ||
+ | *#Considere um vetor global de ''floats'' chamado ''vetRnd'' de tamanho 100. Construa uma função que inicia este vetor com 100 números randômicos entre 1 e 6. Imprima em tela os valores. | ||
+ | *#Implementar uma função que recebe dois vetores de inteiros como parâmetro e o tamanho dos mesmos (suponha vetores de mesmo tamanho). A função deve retornar o número de elementos iguais comparados posição por posição. O esqueleto da função deve ser como: <syntaxhighlight lang=c> | ||
+ | int compara_vetores(int ve1[],int vet2[], int tamanho) | ||
+ | { | ||
+ | int num_elementos; | ||
+ | |||
+ | return num_elementos; | ||
+ | } | ||
+ | </syntaxhighlight>Exemplo: Para os vetores x[]={1,1,3,4,5} e y[]={1,2,3,3,5} temos três elementos iguais (nas posições 0, 2 e 4). | ||
+ | *#Implemente um algoritmo em C que conta a ocorrência de cada letra (incluindo números de 0 a 9) dada uma frase. Deve ignorar se a letra foi digitada em maiúscula ou minúscula (portando somar junto). Limite 100 caracteres. | ||
+ | *#Implemente um algoritmo em C que calcula a média de notas de alunos. Para isso deve solicitar a quantidade de alunos, em seguida obter o nome de cada aluno e depois recebe 5 notas por aluno (num único scanf). Usar uma matriz de float de duas dimensões global. Deve então calcular as médias e apresentar: Nomes dos alunos que ficaram em recuperação (média <6), Nome do aluno que tirou a maior média, Obs.: Criar a função calculaMedia(). | ||
+ | *#Utilize a função rand() e gerador de semente srand() para gerar 6 números aleatórios distintos que variam de 1 a 60 e imprima esta sequencia em tela | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Exercícios - C (série 3)}} | ||
+ | *#Implemente um programa em C que solicita ao usuário digitar duas palavras, o programa analisa estas palavras e diz se são ou não anagramas (palavra formada pela alteração da ordem ou transposição de letras) ex.: “America” e “Iracema”, “Roma” e “Amor”, “Semolina” e “Is no meal” são anagramas) | ||
+ | *#Implemente um algoritmo que dada uma frase, apresente 3 opções: tornar todas as letras em maiúsculas, tornar todas em minúsculas ou a primeira letra de cada palavra em maiúscula e demais minúsculas (limite 100 caracteres). Faça estas operações através de cálculos utilizando como base a tabela ASCII, utilize funções distintas (tudoMaiusculo(), tudoMinusculo(), primeiraMaiuscula()), utilizando o vetor de caracteres como uma variável global. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
Edição das 17h18min de 6 de abril de 2017
Dados importantes
- Professor da Disciplina: Cleber Jorge Amaral
- Email: cleber.amaral@ifsc.edu.br
- Atendimento paralelo: terças e quintas das 12:00 as 13:00 na Sala Multimeios de Tele (ao lado da reprografia)
- Agenda do professor: Ver página
Dados da Disciplina
- Ementa da disciplina na wiki: Engenharia de Telecomunicações 2ª Fase
- Página no moodle: moodle
- Monitoria: Programa_de_monitoria_dos_cursos_superiores_de_Telecomunicações
Algoritmos utilizando fluxograma
Introdução aos algoritmos utilizando fluxograma
Introdução aos algoritmos utilizando fluxograma |
---|
|
Desenvolvendo algoritmos na forma de fluxogramas
Desenvolvendo algoritmos na forma de fluxogramas |
---|
Exercícios para resolver em sala de aula:
|
Pseudo-código
Pseudo-código utilizando Portugol - Introdução e condicionais
- Slides sobre pseudocódigo disponibilizados no moodle.
Ver exemplos de códigos Portugol dentro do software portugol (menu Arquivo->Abrir exemplo)
Pseudo-código utilizando Portugol - repetições
Exercícios - Pseudocodigo (série 1) |
---|
Exercícios - Pseudocodigo (série 1):
|
Exercícios - Pseudocodigo (série 2) |
---|
Exercícios - Pseudocpodigo (série 2):
Exercícios complementares:
|
Pseudo-código utilizando Portugol - sub-rotinas e registros
Exercícios - Pseudocodigo (série 3) |
---|
Exercícios - Pseudocodigo (série 3):
Parte da implementação do problema das funções trigonométricas
|
Programação em C (ANSI)
Programação em C (ANSI) - Introdução ao C
Introdução ao C e funções de saída e entrada de dados |
---|
|
Programação em C (ANSI) - Controle de fluxo em C
Condicionais em C |
---|
|
Exercícios - C (série 0) |
---|
|
Estruturas de repetição em C |
---|
|
Exercícios - C (série 1) |
---|
|
Funções
Funções |
---|
|
A função main |
---|
O programa inicia pela primeira instrução contida na função main() e também se encerra na última instrução. O retorno padrão da função main é um int que representa um código de erros reconhecidos por muitos sistemas operacionais. Se o programa terminou sua execução corretamente o retorno deverá ser 0 (zero). int main(void)
{
//Programa
return 0;
}
|
A função exit |
---|
Uma alternativa a terminação do programa chegando ao fim da função main é a função exit da biblioteca <stdlib.h>. Para esta função deve-se passar um argumento inteiro que tem o mesmo significado do código de retorno da função main, portanto exit(0) representa uma terminação normal, alternativamente exit(EXIT_SUCCESS). Para representar uma terminação anormal pode-se utilizar exit(EXIT_FAILURE) ou exit(1). Há outros códigos de erro (ver [http://tldp.org/LDP/abs/html/exitcodes.html aqui) porém são pouco usuais, no geral o que se pretende é saber apenas se a operação do programa terminou de forma bem sucedida ou não. |
Vetores e matrizes em C
Vetores e matrizes em C |
---|
char nome_da_string [tamanho];
|
Gerando números pseudo-aleatórios |
---|
|
Tabela ASCII |
---|
|
Vetor de tamanho variável |
---|
O vetor de tamanho variável (variable lenght array) é um recurso do C que permite que o tamanho do vetor seja definido em tempo de execução. Na prática o C irá alocar uma quantidade de memória que não precisa estar definida antes da execução. variable-lenght |
Exercícios - C (série 2) |
---|
|
Exercícios - C (série 3) |
---|
|
Referências
Referências bibliográficas |
---|
|
Plano de aula
Cronograma | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Conceitos
Ver moodle da disciplina.