PRG29002-2020-1-Manha: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Eraldo (discussão | contribs)
Eraldo (discussão | contribs)
Linha 657: Linha 657:
**Avaliação 1 - Recuperação - Semana dia 31/8 - a marcar
**Avaliação 1 - Recuperação - Semana dia 31/8 - a marcar
**A2 - Dia 27/08
**A2 - Dia 27/08
**Ficar atento aos exercícios do SIGAA
*Ponteiros para char e ponteiros para vetores
*Ponteiros para char e ponteiros para vetores
*
*

Edição das 08h44min de 18 de agosto de 2020

1 PROFESSOR

  • Eraldo Silveira e Silva

2 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

3 MONITORIA

  • Aluna:
  • Horários:

4 Links Interessantes

5 AULA 1 - Dia 11/02/2020

5.1 Objetivos

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

5.2 Material de Referência

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


6 AULA 2 - 13/02/2012

6.1 Objetivos

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

6.2 Material de Referência

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

7 AULA 3 - 18/02/2020

7.1 Objetivos

  • Floxograma: Estruturas de Repetição

7.2 Material de Referência

Estruturas de Repetição


8 AULA 4 - 20/02/2020

8.1 Objetivos

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

8.2 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.

8.3 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.

8.4 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.

8.5 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.

8.6 Material de Referência

Estruturas de Repetição


9 AULA 5 27/02/2020

9.1 Objetivos

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

9.2 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.


9.3 Exercício Proposto 2

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

9.4 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.

9.5 Exercício Proposto 4

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

a1=s
an=q×an1 ou
an=a1.qn1

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


9.6 Exercício Proposto 5

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

9.7 Exercício Proposto 6

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

10 AULA 6 03/03/2020

10.1 Objetivos

  • Introdução a Programação C

10.2 Material de Referência

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

11 AULA 7 05/03/2020

11.1 Objetivos

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

11.2 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

12 AULA 8 09/03/2020

12.1 Objetivos

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

12.2 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

13 AULA 9 12/03/2020

13.1 Objetivos

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

13.2 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

14 AULA 11 26/03/2020

14.1 Objetivos

  • Comandos de repetição while e do while

14.2 Material de Referência

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


15 AULA 12 31/03/2020

15.1 Objetivos

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

15.2 Material de Referência

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

16 AULA 13 2/04/2020

16.1 Objetivos

  • Comando for

16.2 Material de Referência

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


17 AULA VIRTUAL 14 7/04/2020

17.1 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

17.2 Material de Referência

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

18 AULA VIRTUAL 14 7/04/2020

18.1 Objetivos

  • Exercícios

18.2 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
     }

  }
}

19 AULA VIRTUAL 15 14/04/2020

19.1 Objetivos

  • Funções

19.2 Material de Referência

20 AULA VIRTUAL 16 23/04/2020

20.1 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

20.2 Material de Referência

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

21.1 Objetivos

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


22 AULA VIRTUAL 30/04/2020

22.1 Objetivos

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

22.2 Material de Referência


23 AULA/reunião VIRTUAL 19/05/2020

23.1 Objetivos

  • Discutir como encaminhar a matéria

23.2 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

23.3 Instalação do CLion

semana que vem...

23.4 Revisão de Funções

semana que vem

24 AULA/reunião VIRTUAL 21/05/2020

24.1 Objetivos

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

24.2 Comando if-else - Problema Maior


25 AULA VIRTUAL Síncrona 26/05/2020

25.1 Objetivos

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

25.2 Material de Referência

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

26 AULA VIRTUAL Síncrona 2/06/2020

26.1 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.

26.2 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

27 AULA VIRTUAL Síncrona 4/06/2020

27.1 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.

27.2 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.

27.3 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);
}

28 AULA VIRTUAL Síncrona 9/06/2020

28.1 Objetivos

  • Arrays unidimensionais no C (Continuação)
  • Arrays de char e Strings NULL terminadas

28.2 Material de Referência

28.3 Exercício de Base da Aula

  1. Fazer um programa para computar o número de caracteres de uma cadeia (string) lida pelo teclado.Use o comando while;
  2. Fazer uma variação para um array iniciado;
  3. Fazer uma variação implementando uma função que retorna o número de caracteres.

29 AULA VIRTUAL Síncrona 16/06/2020

29.1 Objetivos

  • Arrays de char e Strings NULL terminadas (Continuação)

29.2 Material de Referência

29.3 Exercício de Base da Aula

  1. Implementar um programa C para criar um array de char iniciado com um nome do time de futebol de sua preferência. O programa deve "printar" o nome do time, o número de caracteres do nome e o número de ocorrência de vogais.
  2. Implementar uma função para para capitalizar uma string inserida pelo teclado. A função deve retornar o número de caracteres que foram capitalizados.
  3. Implementar uma função para concatenar duas strings que estão armazenadas em dois vetores separados. Criar um terceiro vetor para comportar a concatenação.

30 AULA VIRTUAL Síncrona 18/06/2020

30.1 Objetivos

  • Funções da Biblioteca para Operação com Strings
  • Exercícios de Operação sobre strings

30.2 Exercícios 1 em Sala Virtual

Elaborar uma função C para computar o tamanho de uma string conforme esqueleto mostrado baixo.

#include <stdio.h>

int str_len(char str [])
{

  //retorna o tamanho da string armazenada em str[]
}

int main()
{
    char x[100] = "IFSC-";
    char y[100] = "Telecom SJ";
    int tam;

    tam = str_len(x);
    printf("x - > %s com tamanho %d\n", x, tam);

    tam = str_len(y);
    printf("y - > %s com tamanho %d\n", y, tam);
    return 0;
}

30.3 Exercícios 2 em Sala Virtual

Construir um função para concatenar duas strings conforme esqueleto mostrado abaixo. A funçã deve retornar o tamanho total da string concatenada.

#include <stdio.h>
#include <string.h>

int str_cat(char str1 [],char str2 [])
{

  //retorna o tamanho da string armazenada em str[]
}

int main()
{
    char x[100] = "IFSC-";
    char y[100] = "Telecom SJ";
    int tam;

    tam = str_cat(x,y);
    printf("x - > %s com tamanho %d\n", x, tam);

    return 0;
}

30.4 Material de Referência

31 AULA VIRTUAL Síncrona 23/06/2020

31.1 Objetivos

  • Exercício de Comparação de Strings
  • Introdução a arranjos multidimensionais no C

31.2 EXERCÍCIO DE COMPARAÇÃO ENTRE DUAS STRINGS

31.3 Introdução a Arranjos Multidimensionais - Wiki desta aula

31.4 Exercício em Sala

  1. Implementar um programa para calcular a média de todos elementos da matriz C (exemplo inicial da wiki).
  2. Fazer uma função que recebe duas matrizes 2x3 como parâmetros e retorna a média entre todos elementos da matriz soma destas matrizes.

32 AULA VIRTUAL Síncrona 25/06/2020

32.1 Objetivos

33 AULA VIRTUAL Síncrona 2/07/2020

33.1 Objetivos

  • Arranjo Multidimensional: Vetor de Strings

33.2 Referência para eta aula

33.3 Exercício em sala

Implementar um programa para "abrir uma porta" para um usuário que se encontra em uma tabela de usuários. Faça uma versão com (i) uma função implementada por você para comparar strings (ii) a função strcmp() da biblioteca


34 AULA VIRTUAL Síncrona 7/07/2020

34.1 Objetivos

  • Arranjo Multidimensional: Exercício de Vetor de Strings

34.2 Exercício (ver Arranjos Multidimensionais)

  1. Implementar controle de acesso para múltiplos usuários e com senha associada a cada um deles.
  2. Implementar um contador de acesso para cada usuário.


35 AULA VIRTUAL Síncrona 9/07/2020

35.1 Objetivos

  • Arranjo Multidimensional: Exercício de Vetor de Strings - (continuação)


35.2 Exercício (ver Arranjos Multidimensionais)

  1. Implementar controle de acesso para múltiplos usuários e com senha associada a cada um deles.
  2. Implementar um contador de acesso para cada usuário.

36 AULA VIRTUAL Síncrona 4/08/2020

36.1 Objetivos

  • Estruturas: Parte 1

36.2 Referências

37 AULA VIRTUAL Síncrona 6/08/2020

37.1 Objetivos

  • Estruturas: Parte 1

37.2 Referências

38 AULA VIRTUAL Síncrona 11/08/2020

38.1 Objetivos

  • Exercícios sobre Estruturas- Questionário A3.1 - SIGA A

39 AULA VIRTUAL Síncrona 13/08/2020

39.1 Objetivos

  • Introdução Ponteiros no C
  • Exercícios - Questionário A3.1 - SIGA A

39.2 Material de Referência

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

40 AULA VIRTUAL Síncrona 18/08/2020

40.1 Objetivos

  • Avisos:
    • Novos exercícios funções e strings (preparação avaliação)
    • Avaliação 1 - Recuperação - Semana dia 31/8 - a marcar
    • A2 - Dia 27/08
    • Ficar atento aos exercícios do SIGAA
  • Ponteiros para char e ponteiros para vetores

40.2 Material de Referência

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

41 SUPORTE DURANTE A SITUAÇÂO DE CRISE

41.1 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 [2] 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 [3] 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).

41.2 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.

41.3 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...