Mudanças entre as edições de "PRG29002-2020-1-Manha"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 402: Linha 402:
  
 
https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia#ARRAYS_unidimensionais_.28vetores.29
 
https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia#ARRAYS_unidimensionais_.28vetores.29
 +
 +
 +
<syntaxhighlight lang=c>
 +
/*
 +
Implementar uma função que recebe um
 +
vetor de float com tamanho 10 como parâmetro.
 +
A função deve retornar a média dos números positivos armazenados no vetor.
 +
Teste a função no "main". Crie um vetor local inicializado.
 +
Problema: divisão por zero...
 +
*/
 +
 +
#include <stdio.h>
 +
 +
float calcular_media_positivos(float vetor[10])
 +
{
 +
    int i,cont=0;
 +
    float soma_ac, media;
 +
 +
    for(i=0;i<10;i=i+1){
 +
        if(vetor[i]>0) {
 +
            soma_ac = soma_ac + vetor[i];
 +
            cont = cont + 1;
 +
        }
 +
    }
 +
    media = soma_ac/cont;
 +
 +
    return(media);
 +
}
 +
 +
int main()
 +
{
 +
    float alfa[10] = {3.5,2.7,9.7,8.5,2,9,4.7,3,2,3};
 +
    float beta[10] = {6.5,8.7,3.7,8.5,1,9,4.7,3,2,3};
 +
    float media_final;
 +
 +
    media_final = (calcular_media_positivos(alfa) + calcular_media_positivos(beta))/2;
 +
    printf("media = %f\n", media_final);
 +
}
 +
</syntaxhighlight>
  
 
=SUPORTE DURANTE A SITUAÇÂO DE CRISE=
 
=SUPORTE DURANTE A SITUAÇÂO DE CRISE=

Edição das 11h10min de 4 de junho de 2020

PROFESSOR

  • Eraldo Silveira e Silva

ATENDIMENTO PARALELO

SEGUNDA: 14h30 às 15h30 QUARTA: 10h às 11h

LOCAL: Sala 1 de Professores de Telecomunicações ou em algum dos laboratórios de TELE/CAD

MONITORIA

  • Aluna:
  • Horários:

Links Interessantes

AULA 1 - Dia 11/02/2020

Objetivos

  • Apresentar o plano de ensino
  • Discutir a forma de avaliação
  • Introdução a Lógica de Programação

Material de Referência

Aula Introdutória sobre Lógica de Programação


AULA 2 - 13/02/2012

Objetivos

  • Introdução a Fluxograma e pseudocódigo.
  • Estruturas de Decisão

Material de Referência

Lógica de Programação: Estruturas de Decisão

AULA 3 - 18/02/2020

Objetivos

  • Floxograma: Estruturas de Repetição

Material de Referência

Estruturas de Repetição


AULA 4 - 20/02/2020

Objetivos

  • Exercícios de Lógica de Porogramação.

Exercício Proposto 1

  • Faça um fluxograma para entrar com N números e com um número de referência (REF). Mostrar quantos números estão abaixo desta referência.

Exercício Proposto 2

  • Faça um fluxograma para entrar com N números e com dois números de referência (REF1 e REF2). Mostrar a média dos números que estão entre estas referÊncias (inclusive). OBS: Considere que REF2 sempre será maior que REF1, para simplificar a solução. OBS2: LEMBRAR que não pode ser realizada uma divisão por ZERO. Proteger esta operação com uma estrutura de decisão.

Exercício Proposto 3

  • Faça um fluxograma para calcular a média de uma prova realizada com N alunos. N será fornecido no início do algoritmo. Mostrar quantos alunos estão com nota acima de 6. Mostrar também quantos alunos precisam recuperar esta prova (abaixo ou igual a 5). OBS: Considere que as notas das provas são números inteiros de 0 a 10.

Exercício Proposto 4

  • Modificar o exercício anterior para que seja também mostrada a maior nota da prova. SUGESTÂO: criar uma variável auxiliar MAIOR e iniciá-la com ZERO. Comparar cada nota com o valor desta variável. Se ela form maior, substituir o valor de MAIOR pela nota.

Material de Referência

Estruturas de Repetição


AULA 5 27/02/2020

Objetivos

  • Exercícios de Lógica de Programação.

Exercício Proposto 1

Faça um fluxograma para computar a média de números fornecidos como entrada. Caso o número fornecido seja ZERO o sistema deve fazer o cálculo da média, mostrá-la e encerrar.


Exercício Proposto 2

Modifique a solução para o exercício anterior de forma que o sistema ignore entradas que estejam na faixa OU . (recordar notação de intervalos aqui: https://www.infoescola.com/matematica/intervalo/)

Exercício Proposto 3

Considere um sistema de controle de acesso que abre uma porta através de uma senha alfanumérica. Ao ser ligado o sistema pergunta qual a senha desejada para ser utilizada. O usuário deve fornecer a senha que deseja usar e na sequência um código fornecido na caixa do produto, de forma a validar o processo. Se o código fornecido for errado então ele será perguntado novamente até que seja fornecido corretamente.

Na sequência, o sistema abre a porta normalmente para a senha colocada. Entretanto, se em algum momento o usuário errar por 3 vezes, o sistema é bloqueado fornecendo uma mensagem "ENTRE COM O CÒDIGO DO PRODUTO" para desbloquear, permanecendo no aguardo para o fornecimento deste código. . Se fornecido corretamente o sistema é desbloqueado e volta a funcionar normalmente, caso contrário volta a perguntar pelo CÓDIGO do produto.

Exercício Proposto 4

A fórmula de um termo de uma PG (progressão Geométrica) é dado por:

ou

Sem usar fórmulas de SOMA de termos faça um fluxograma para calcular a média dos 10 primeiros termos, dado e . Supor que não são fornecidos "ZEROS" para estes valores.


Exercício Proposto 5

Flexibilize a solução do problema anterior para computar a média dos N primeiros termos, onde N é inicialmente fornecido.

Exercício Proposto 6

Elabore um fluxograma para receber como entrada dois números (suponha inteiro positivos). Computar o fatorial do maior número.

AULA 6 03/03/2020

Objetivos

  • Introdução a Programação C

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_4_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA 7 05/03/2020

Objetivos

  • Introdução a Programação C
  • Declaração de Variáveis
  • Comandos de Decisão

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_4_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA 8 09/03/2020

Objetivos

  • Introdução a Programação C
  • Declaração de Variáveis
  • Comandos de Decisão (continuação)

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_4_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA 9 12/03/2020

Objetivos

  • Comandos de Decisão (continuação)
  • variável tipo char e discussão sobre a sujeira do teclado

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_4_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA 11 26/03/2020

Objetivos

  • Comandos de repetição while e do while

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia


AULA 12 31/03/2020

Objetivos

  • Comandos de repetição while e do while
  • Comando for

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA 13 2/04/2020

Objetivos

  • Comando for

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia


AULA VIRTUAL 14 7/04/2020

Objetivos

  • Revisão de comandos de repetição
  • Variações do exercício de sorteio do while()
  • Exercícios 5 6 da wiki nível inicial

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA VIRTUAL 14 7/04/2020

Objetivos

  • Exercícios

Exercício para resolução em sala - Extra Wiki

  1. Exercícios 1 e 2 de nível médio da wiki: aula de comandos de repetição.
  2. Implemente um programa para geração de 6 números da megasena (de 1 a 60). Note que os números não podem se repetir.

Não usar vetor. Armazenar os valores gerados em variáveis de nome num1, num2,...num6. OBS: como ainda não aprendemos vetores teremos que a cada geração verificar se não coincide com o número anterior.Uma seugestão seria:

int  main() {
  int i,num1,num2,num3,num4,num5,num6;

  /* gerar primeiro número e armazenar em num1 */

  for (i=2;i<=6;i++) { /* gerar próximos 5 números */
     switch (i) {
        2: /*fazer um loop com do while ou while para gerar num2 confrontando com num1 */
           break;
        3: /*fazer um loop com do while ou while para gerar num3 confrontando com num1 e num2 */
          
         : etc
     }

  }
}

AULA VIRTUAL 15 14/04/2020

Objetivos

  • Funções

Material de Referência

AULA VIRTUAL 16 23/04/2020

Objetivos

  • Explicação do Exercício
  • Funções (continuação)
    • Conceito de Função
    • Como definir e declarar função;
    • O papel da função em implementar sub-problemas
    • Exercício

Material de Referência

AULA VIRTUAL (Esta aula não terá encontro síncrono) 28/04/2020

Objetivos

  • Funções (continuação) - Ver os vídeos dos exercícios abaixo.
    • Conceito de Função
    • Como definir e declarar função;


AULA VIRTUAL 30/04/2020

Objetivos

  • Continuação Funções
    • Conceito de Variáveis Globais e Locais;
    • Inicialização de Variáveis
  • Exercícios

Material de Referência


AULA/reunião VIRTUAL 19/05/2020

Objetivos

  • Discutir como encaminhar a matéria

Revisão da Matéria - até dia 29/05

  • assistir vídeos/aulas wiki revisão - links a serem colocados como tarefas no siga a;
  • assistir vídeos explicativos tarefa A1.1
  • fazer dois exercícios a serem entregues dia 29/05

Instalação do CLion

semana que vem...

Revisão de Funções

semana que vem

AULA/reunião VIRTUAL 21/05/2020

Objetivos

  • Revisão Comando if else: exercício Maior entre 3 números
  • Resolução Exercício 1 da Tarefa A1.1

Comando if-else - Problema Maior


AULA VIRTUAL Síncrona 26/05/2020

Objetivos

  • Revisão Comandos de Repetição
  • Resolução Exercício 1 da Tarefa A1.2

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

AULA VIRTUAL Síncrona 2/06/2020

Objetivos

  • Introdução a arrays unidimensionais no C
  • Arrays de inteiros e de floats
  • Exercício de ler 5 números e computar quantos estão acima da média.

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia#ARRAYS_unidimensionais_.28vetores.29

AULA VIRTUAL Síncrona 4/06/2020

Objetivos

  • Introdução a arrays unidimensionais no C (Continuação)
  • Arrays de inteiros e de floats
  • Exercício de ler 5 números e computar quantos estão acima da média.

Exercício

Implementar uma função que recebe um vetor de float com tamanho 10 como parâmetro. A função deve retornar a média dos números armazenados no vetor. Teste a função no "main". Crie um vetor local inicializado.

Material de Referência

https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia#ARRAYS_unidimensionais_.28vetores.29


/*
 Implementar uma função que recebe um
 vetor de float com tamanho 10 como parâmetro.
 A função deve retornar a média dos números positivos armazenados no vetor.
 Teste a função no "main". Crie um vetor local inicializado.
 Problema: divisão por zero...
 */

#include <stdio.h>

float calcular_media_positivos(float vetor[10])
{
    int i,cont=0;
    float soma_ac, media;

    for(i=0;i<10;i=i+1){
        if(vetor[i]>0) {
            soma_ac = soma_ac + vetor[i];
            cont = cont + 1;
        }
    }
    media = soma_ac/cont;

    return(media);
}

int main()
{
    float alfa[10] = {3.5,2.7,9.7,8.5,2,9,4.7,3,2,3};
    float beta[10] = {6.5,8.7,3.7,8.5,1,9,4.7,3,2,3};
    float media_final;

    media_final = (calcular_media_positivos(alfa) + calcular_media_positivos(beta))/2;
    printf("media = %f\n", media_final);
}

SUPORTE DURANTE A SITUAÇÂO DE CRISE

Instalando o Linux na VirtualBox

Conforme comentando em aula, o Linux pode ser instalado sobre uma máquina VIRTUAL em um sistema (hospedeiro) Windows ou Linux. Pode-se selecionar (ver condições de uso) uma distribuição gratuita do Linux e de uma Máquina Virtual. Ver abaixo procedimento para instalação. SEMPRE salve seus dados antes de qualquer operação sobre o sistema Windows ou Linux ou MacOS. NÃO recomendo DUAL BOOT pois pode (ainda que com baixa probabilidade) danificar o sistema hospedeiro.

  • Fazer Download do arquivo ISO em [1] versão Ubuntu 18.04.3 LTS. Escolher a opção Desktop. Confira se o seu PC é 64 bits (os mais novos são).
  • Instalar a VirtualBox (já está instalada no nosso Lab). Baixar de [2] e selecionar para a máquina hospedeira alvo. Selecione o sistema hospedeiro (o seu sistema) correto.
  • O procedimento abaixo é para instalação de uma máquina virtual sobre o hospedeiro Linux Ubuntu mas para o Windows é bastante similar. Se tiver dúvidas pesquise no google como fazer a instalação sobre o Windows. Note que o VirtualBox é instalado como aplicativo tanto no Windows como Ubuntu.

Caso a distribuição que tenha instalado não possua o GCC, pode instalá-lo usando na linha de comando (para a familília Debian/Ubuntu):

 $ sudo apt install g++

Note que $ é o prompt (não faz parte do comando).

Compilador C no Android

Eu instalei e testei sem problemas (mas não posso garantir nada)) no meu Android, o compilador C "Coding C" (a partir do Play Store). Para testar pequenos programas pode ser uma solução interessante. Ele permite compilar offline, ou seja, não precisa usar a rede.

DevC++ no Windows

Como comentei em aula, em situação normal não recomendo usar um compilador C sobre o Windows diretamente. Como estamos em situação emergencial, uma opção seria instalar o DevC++diretamente no Ubuntu.

Vi um tutorial em : http://linguagemc.com.br/tutorial-de-instalacao-do-dev-c/ Não testei...