Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2016-1"
Ir para navegação
Ir para pesquisar
Linha 70: | Linha 70: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
*[[Media:2.6 Programacao PRG29002 - Operadores e precedências.pdf|2.7: Operadores e precedências]] | *[[Media:2.6 Programacao PRG29002 - Operadores e precedências.pdf|2.7: Operadores e precedências]] | ||
− | {{collapse top | Gerando números pseudo-aleatórios}} | + | *[[Media:2.8 Programacao PRG29002 - Exercicios Vetores.pdf|2.8 Exercicios Vetores]] |
− | #Computadores executam instruções, portanto, não são realmente capazes de criar números aleatoriamente. Porém existem artifícios de se criar números que variam conforme determinadas condições como sequencias variáveis associadas a data e hora atual por exemplo, a isso chamamos de números pseudo aleatórios. Para conseguir este recurso em C podemos utilizar a função rand() da stblib associada a função srand que configura uma semente de aleatoriedade a função rand, o resultado pode ser conferido no código a seguir: <syntaxhighlight lang=c> | + | {{collapse top | Variáveis locais e Globais / Gerando números pseudo-aleatórios}} |
+ | *Se variáveis são declaradas dentro de uma função, então a visibilidade (ESCOPO) destas variáveis é LOCAL. Nenhuma outra função tem acesso a estas variáveis. Uma variável pode ser GLOBAL, ou seja, declarada FORA das funções. Neste caso a variável é VISTA por todas as funções. | ||
+ | **Neste exemplo, a variável ''media'' é declarada como GLOBAL. Ela é MODIFICADA diretamente pela função ''media_nums()'' e impressa pela função ''main()'' | ||
+ | ***NOTE que como a função ''media_nums()'' não retorna valor então declaramos seu tipo de retorno como ''void'' que significa aqui NADA ou VAZIO. | ||
+ | ***NOTE também que MESMO que a função retorne um valor, não é obrigatório colocá-la no lado direito do sinal de atribuição. <syntaxhighlight lang=c> | ||
+ | #include <stdio.h> | ||
+ | float media; /* Variável GLOBAL */ | ||
+ | |||
+ | void media_nums(float num1, float num2) | ||
+ | { | ||
+ | media = (num1 + num2)/2; | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | main() | ||
+ | { | ||
+ | float aux1, aux2; /* Variáveis LOCAIS */ | ||
+ | |||
+ | printf("\nEntre com numero 1: "); | ||
+ | scanf ("%f",&aux1); | ||
+ | |||
+ | printf("\nEntre com numero 2: "); | ||
+ | scanf ("%f",&aux2); | ||
+ | |||
+ | media_nums(aux1, aux2); | ||
+ | printf ("\nmedia dos 2 numeros é %f\n", media); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | *Uma função pode ser chamada dentro de qualquer expressão. Por exemplo, para o caso em que a função ''media_nums()'' retorna um valor, ela poderia ser usada como: | ||
+ | **NOTE agora que a função ''media_nums()'' retorna um float, podemos utilizar este retorno no contexto em que a função foi chamada que é o que ocorre dentro do printf abaixo | ||
+ | **NOTE também que MESMO que a função retorne um valor, não é obrigatório que este valor este sendo recebido por alguma variável, uma função que possui retorno e este retorno não está sendo recebido se comportará como um procedimento (sem retorno). | ||
+ | **OBS.: Variáveis LOCAIS e GLOBAIS podem ter o mesmo nome. A variável LOCAL terá preferência no uso. <syntaxhighlight lang=c> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | float media_nums(float num1, float num2) | ||
+ | { | ||
+ | float media_local; | ||
+ | |||
+ | media_local = (num1 + num2)/2; | ||
+ | return media_local; | ||
+ | } | ||
+ | |||
+ | main() | ||
+ | { | ||
+ | float media, aux1, aux2, aux3; | ||
+ | printf("\nEntre com numero 1: "); | ||
+ | scanf ("%f",&aux1);). | ||
+ | |||
+ | printf("\nEntre com numero 2: "); | ||
+ | scanf ("%f",&aux2); | ||
+ | |||
+ | media = media_nums(aux1, aux2); | ||
+ | printf ("\nmedia dos 2 numeros multiplicada por 10 é %f\n", 10*media_nums(aux1, aux2)); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | *Computadores executam instruções, portanto, não são realmente capazes de criar números aleatoriamente. Porém existem artifícios de se criar números que variam conforme determinadas condições como sequencias variáveis associadas a data e hora atual por exemplo, a isso chamamos de números pseudo aleatórios. Para conseguir este recurso em C podemos utilizar a função rand() da stblib associada a função srand que configura uma semente de aleatoriedade a função rand, o resultado pode ser conferido no código a seguir: <syntaxhighlight lang=c> | ||
#include <stdlib.h> | #include <stdlib.h> | ||
#include <time.h> | #include <time.h> |
Edição das 13h17min de 1 de junho de 2016
Professor da Disciplina: Cleber Jorge Amaral
e-mail: cleber.amaral@ifsc.edu.br
Critérios e instrumentos de avaliação
- Conceito => Somatório(Nota)/QtNotas
- Esta é uma previsão, eventuais mudanças serão comunicadas no decorrer das atividades
- Nota[1]: Nota da Avaliação 1 (a definir data e formato)
- Nota[2]: Nota da Avaliação 2 (a definir data, formato e necessidade desta segunda avaliação)
- Nota[3]: Média das notas das Listas de exercícios
- Nota[4]: Nota do Projeto final
- Frequência
- Mínimo 75%
Datas importantes
- 13/04/2016
- Lista de exercícios 1: Entregar por e-mail ou manuscrito
- Desafio 1 (projeto de cafeteira): Entregar por e-mail ou manuscrito a Narrativa, Fluxograma e Pseudocódigo
- 20/04/2016
- Lista de exercícios 2: Entregar por e-mail (seguir instruções) ou manuscrito
- Lista de exercícios 3: Entregar por e-mail (seguir instruções) ou manuscrito
- O estudante deve entregar na forma de fluxograma cada desafio que resolvemos na aula de 13/04 na forma de pseudocódigo, e devem ser entregues na forma de pseudocódigo os fluxogramas que fizemos em sala -
- Os títulos dos algoritmos são citados na mídia 1.3 (link abaixo) mas os detalhes foram trabalhados em sala e fotografados pelos próprios alunos
- 27/04/2016
- Lista de exercícios 4: Entregar por e-mail (seguir instruções) ou manuscrito
- 11/05/2016
- Lista de exercícios 5: Entregar por e-mail (seguir instruções)
- 17/05/2016
- Prova 1: Algoritmos e lógica utilizando pseudocódigo e fluxogramas
- 25/05/2016
- Lista de exercícios 6: Entregar via moodle
- 28/05/2016
- Desafio 2 (jogo da velha): Entregar via moodle
- 22/06/2016
- Prova 2: Prática
Material de aula
- 0.0: Ementa da disciplina
- Ementa da disciplina na wiki: Engenharia de Telecomunicações 2ª Fase
- 1.0: Introdução aos algoritmos
- 1.1: Algoritmos continuação
- 1.2: Algoritmos - repetição e subrotinas
- 1.3: Algoritmos - fixação
- 1.4 Algoritmos - Preparação para avaliação
- 2.0: Introdução ao C
- 2.1: Introdução - continuação
- 2.2: Condicionais no C
- 2.3: Estruturas de repetição no C
- 2.4: Funções no C
- 2.5: Funçoes no C - continuação
- 2.6 Vetores em C
Exercicios complementares - Vetores |
---|
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). |
Variáveis locais e Globais / Gerando números pseudo-aleatórios | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Referências importantesFerramentas úteis
Orientações para entrega dos trabalhos
Eventos da área de desenvolvimento
Horário de MonitoriaSites úteis
Turma Conceitos NuméricosConceitos Individuais - Avaliações principais
Consolidação - Avaliações principais
Conceitos Individuais - Avaliações secundárias
Turma Conceitos por LetrasConceitos Individuais - Avaliações principais
Consolidação - Avaliações principais
Conceitos Individuais - Avaliações secundárias
Critério de conversão Numérico x Letra
|