Mudanças entre as edições de "PRG29002-2020-1-Tarde"
Linha 576: | Linha 576: | ||
*Arranjo Multidimensional: Exercício de Vetor de Strings | *Arranjo Multidimensional: Exercício de Vetor de Strings | ||
+ | |||
+ | ==Exercício (ver [https://wiki.sj.ifsc.edu.br/index.php/Programa%C3%A7%C3%A3o_1_-_Engenharia_-_Arrays_Multidimensionais#Como_definir_e_operar_com_matrizes_no_C Arranjos Multidimensionais])== | ||
+ | |||
+ | #Implementar controle de acesso para múltiplos usuários e com senha associada a cada um deles. | ||
+ | #Implementar um contador de acesso para cada usuário. | ||
+ | |||
+ | =AULA VIRTUAL Síncrona 10/07/2020 = | ||
+ | |||
+ | ==Objetivos== | ||
+ | |||
+ | *Arranjo Multidimensional: Exercício de Vetor de Strings - (continuação) | ||
+ | |||
==Exercício (ver [https://wiki.sj.ifsc.edu.br/index.php/Programa%C3%A7%C3%A3o_1_-_Engenharia_-_Arrays_Multidimensionais#Como_definir_e_operar_com_matrizes_no_C Arranjos Multidimensionais])== | ==Exercício (ver [https://wiki.sj.ifsc.edu.br/index.php/Programa%C3%A7%C3%A3o_1_-_Engenharia_-_Arrays_Multidimensionais#Como_definir_e_operar_com_matrizes_no_C Arranjos Multidimensionais])== |
Edição das 15h23min de 10 de julho 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 10/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 - 14/02/2020
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 - 17/02/2020
Objetivos
- Floxograma: Estruturas de Repetição
Material de Referência
AULA 4 - 21/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
AULA 5 28/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
Exercício Proposto 5
Exercício Proposto 6
AULA 6 02/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 06/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 9 13/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 XX 27/03/2020
NÃO HOUVE AULA...
Objetivos
- comando while
Material de Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA XX 4/03/2020
Objetivos
- comando while, do while e comando for
Material de Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA XX 6/04/2020
Objetivos
- Revisão comandos while e do while;
- Comando for, break e continue.
Material de Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA XX 13/04/2020
Objetivos
- Variações do exercício de sorteio do while()
- Exercícios 5 6 da wiki nível inicial
- Exercícios adicionais (ver abaixo)
Exercício para resolução em sala - Extra Wiki
- Exercícios 1 e 2 de nível médio da wiki: aula de comandos de repetição.
- 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=0;i<5;i++) { /* gerar próximos 5 números */
switch (i) {
1: /*fazer um loop com do while ou while para gerar num2 confrontando com num1 */
break;
2: /*fazer um loop com do while ou while para gerar num3 confrontando com num1 e num2 */
: etc
}
}
}
Material de Referência
https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia
AULA VIRTUAL 15/04/2020
Objetivos
- Funções
Material de Referência
AULA VIRTUAL 24/04/2020
Objetivos
- 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
- Explicação do Exercício 1 da Tarefa 4
- Explicação do Exercício 2 da Tarefa 4
- Vídeo da Aula da Manhã - O que é função no C
- Funções
AULA VIRTUAL 27/04/2020
Objetivos
- Funções (continuação)
- Conceito de Função
- Como definir e declarar função;
- Discussão Exercícios da Tarefa
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 VIRTUAL Sĩncrona 22/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
Vídeos Explicativos
AULA VIRTUAL Síncrona 25/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 1/06/2020
Objetivos
- Introdução a arrays unidimensionais no C
- Arrays de inteiros e de floats
Material de Referência
AULA VIRTUAL Síncrona 5/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
AULA VIRTUAL Síncrona 5/06/2020
Objetivos
- Arrays unidimensionais no C (Continuação)
- Arrays de char e Strings NULL terminadas
Material de Referência
Exercício de Base da Aula
- Fazer um programa para computar o número de caracteres de uma cadeia (string) lida pelo teclado.Use o comando while;
- Fazer uma variação para um array iniciado;
- Fazer uma variação implementando uma função que retorna o número de caracteres.
AULA VIRTUAL Síncrona 15/06/2020
Objetivos
- Arrays de char e Strings NULL terminadas (Continuação)
Material de Referência
Exercício de Base da Aula
- 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.
- Implementar uma função para para capitalizar uma string inserida pelo teclado. A função deve retornar o número de carcteres que foram capitalizados.
- 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.
Vídeos Explicativos dos Exercícios
AULA VIRTUAL Síncrona 19/06/2020
Objetivos
- Funções da Biblioteca para Operação com Strings
- Exercícios de Operação sobre strings
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;
}
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;
}
Exercícios 3 em Sala Virtual
Elaborar uma função C para computar o número de caracteres 'i' de uma string armazenada em um vetor de char. Ver esqueleto abaixo.
#include <stdio.h>
int count_i(char str [])
{
//retorna o número de 'is' armazenados na string em str[]
}
int main()
{
char x[100] = "IFSC-";
int tam;
tam = count_i(x);
printf("número de is na string x - > %s é %d\n", x, tam);
}
Material de Referência
AULA VIRTUAL Síncrona 22/06/2020
Objetivos
- Exercício de Comparação de Strings
- Introdução a arranjos multidimensionais no C
EXERCÍCIO DE COMPARAÇÃO ENTRE DUAS STRINGS
Introdução a Arranjos Multidimensionais - Wiki desta aula
Exercício em Sala
- Implementar um programa para calcular a média de todos elementos da matriz C (exemplo inicial da wiki).
- 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.
AULA VIRTUAL Síncrona 26/06/2020
Objetivos
- Exemplo Arranjo Multidimensional: Batalha Naval
ReferÊncia para esta aula
AULA VIRTUAL Síncrona 3/07/2020
Objetivos
- Arranjo Multidimensional: Vetor de Strings
Referência para eta aula
AULA VIRTUAL Síncrona 6/07/2020
Objetivos
- Arranjo Multidimensional: Exercício de Vetor de Strings
Referência para eta aula
Exercício
Exercício 3 da wiki. Controle de acesso com senha.
AULA VIRTUAL Síncrona 6/07/2020
Objetivos
- Arranjo Multidimensional: Exercício de Vetor de Strings
Exercício (ver Arranjos Multidimensionais)
- Implementar controle de acesso para múltiplos usuários e com senha associada a cada um deles.
- Implementar um contador de acesso para cada usuário.
AULA VIRTUAL Síncrona 10/07/2020
Objetivos
- Arranjo Multidimensional: Exercício de Vetor de Strings - (continuação)
Exercício (ver Arranjos Multidimensionais)
- Implementar controle de acesso para múltiplos usuários e com senha associada a cada um deles.
- Implementar um contador de acesso para cada usuário.
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 [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).
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...