Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2023-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '=PROFESSOR= ''Professor'': Tiago Semprebom <br>''Email'': tisemp@ifsc.edu.br <br> ''diretório web:'': tele.sj.ifsc.edu.br/~tisemp <br> <br> '''IMPORTANTE:''' o direito de...')
 
Linha 8: Linha 8:
 
=ATENDIMENTO PARALELO=
 
=ATENDIMENTO PARALELO=
  
SEGUNDA: 17h:00 às 18h00
+
TERÇAS: 17h às 18h.
QUINTA14h:00 às 15h:00.
+
QUINTAS11h às 12h.
  
LOCAL: Sala 2 de Professores de Telecomunicações.
+
LOCAL: Sala 2 de Professores de Telecomunicações / Gabinete da Direção-Geral.
  
 
=MONITORIA=
 
=MONITORIA=
Linha 33: Linha 33:
 
=Aulas=
 
=Aulas=
  
==31/07/2019: Introdução a algoritmos==
+
==27/07/2023: Introdução a algoritmos==
  
 
===Objetivos===
 
===Objetivos===
Linha 44: Linha 44:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_1_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Aula Introdutória sobre Lógica de Programação]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_1_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Aula Introdutória sobre Lógica de Programação]
  
==01/08/2019: Lógica de Programação - Estruturas de Decisão==
+
==01/08/2023: Lógica de Programação - Estruturas de Decisão==
  
 
==Objetivos==
 
==Objetivos==
Linha 55: Linha 55:
 
[[AULA 2 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Decisão]]
 
[[AULA 2 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Decisão]]
  
==07/08/2019: Lógica de Programação - Estruturas de Repetição==
+
==03/08/2023: Viagem ao JIFSC (Blumenau)
 +
 
 +
==08/08/2023: Lógica de Programação - Estruturas de Repetição==
  
 
==Objetivos==
 
==Objetivos==
Linha 66: Linha 68:
 
[[AULA 3 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Repetição]]
 
[[AULA 3 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Repetição]]
  
==08/08/2019: Lógica de Programação - Estruturas de Repetição (cont)==
+
==10/08/2023: Lógica de Programação - Estruturas de Repetição (cont)==
  
 
==Objetivos==
 
==Objetivos==
Linha 77: Linha 79:
 
[[AULA 3 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Repetição]]
 
[[AULA 3 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Repetição]]
  
==14/08/2019: Lógica de Programação - Estruturas de Repetição (cont)==
+
==15/08/2023: Lógica de Programação - Estruturas de Repetição (cont)==
  
 
==Objetivos==
 
==Objetivos==
Linha 88: Linha 90:
 
[[AULA 3 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Repetição]]
 
[[AULA 3 - Programação 1 - Engenharia | Lógica de Programação: Estruturas de Repetição]]
  
==15/08/2019: Introdução a Programação C==
+
==17/08/2023: Introdução a Programação C==
  
 
==Objetivos==
 
==Objetivos==
Linha 106: Linha 108:
 
*Estudar AULA 2 e 3 de [http://wiki.sj.ifsc.edu.br/images/8/82/Curso_de_linguagem_C_UFMG.pdf Apostila de C - UFMG]
 
*Estudar AULA 2 e 3 de [http://wiki.sj.ifsc.edu.br/images/8/82/Curso_de_linguagem_C_UFMG.pdf Apostila de C - UFMG]
  
==21/08/2019: Introdução a Linguagem C (exercícios)==
+
==22/08/2023: Introdução a Linguagem C (exercícios)==
  
 
==Objetivos==
 
==Objetivos==
Linha 116: Linha 118:
 
[[AULA 4 - Programação 1 - Engenharia |  Introdução a Programação C]]
 
[[AULA 4 - Programação 1 - Engenharia |  Introdução a Programação C]]
  
==22/08/2019: Estruturas de Decisão==
+
==24/08/2023: Estruturas de Decisão==
  
 
==Objetivos==
 
==Objetivos==
Linha 129: Linha 131:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estrutura de Decisão]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estrutura de Decisão]
  
==28/08/2019: Estruturas de Decisão==
+
==29/08/2023: Estruturas de Decisão==
  
 
==Objetivos==
 
==Objetivos==
Linha 142: Linha 144:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estrutura de Decisão]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_5_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estrutura de Decisão]
  
==29/08/2019: Estruturas de Repetição==
+
==31/08/2023: Estruturas de Repetição==
  
 
==Objetivos==
 
==Objetivos==
Linha 152: Linha 154:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
  
==04/09/2019: Estruturas de Repetição==
+
==05/09/2023: Estruturas de Repetição==
  
 
==Objetivos==
 
==Objetivos==
Linha 162: Linha 164:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
  
==05/09/2019: Estruturas de Repetição==
+
==07/09/2023: Estruturas de Repetição==
  
 
==Objetivos==
 
==Objetivos==
Linha 172: Linha 174:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
  
==11/09/2019: Revisão para Avaliação==
+
==12/09/2023: Revisão para Avaliação==
 
* Resolução de exercícios.
 
* Resolução de exercícios.
  
Linha 179: Linha 181:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_6_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas de Repetição]
  
==12/09/2019: '''AVALIAÇÃO 1'''==
+
==14/09/2023: '''AVALIAÇÃO 1'''==
  
==18/09/2019: Vista de prova (Avaliação 1)==
+
==19/09/2023: Viagem à Brasília==
 +
 
 +
==21/09/2023: Viagem à Brasília==
 +
 
 +
==26/09/2023: Vista de prova (Avaliação 1)==
  
 
===Objetivos===
 
===Objetivos===
Linha 191: Linha 197:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_X_-_Programa%C3%A7%C3%A3o_1_-_Uso_de_IDE_com_o_C Uso de IDE]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_X_-_Programa%C3%A7%C3%A3o_1_-_Uso_de_IDE_com_o_C Uso de IDE]
  
==19/09/2019: Conceito de Funções e Parâmetros==
+
==28/09/2023: Conceito de Funções e Parâmetros==
  
 
===Objetivos===
 
===Objetivos===
Linha 200: Linha 206:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_8_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Funções]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_8_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Funções]
  
==25/09/2019: Funções==
+
==03/10/2023: Funções==
  
 
===Objetivos===
 
===Objetivos===
Linha 208: Linha 214:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_8_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Funções]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_8_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Funções]
  
==26/09/2019: Vetores==
+
==05/10/2023: Vetores==
  
 
===Objetivos===
 
===Objetivos===
Linha 218: Linha 224:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Vetores]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Vetores]
  
==02/10/2019: Arranjos Vetores (strings)==
+
==10/10/2023: Arranjos Vetores (strings)==
  
 
===Objetivos===
 
===Objetivos===
Linha 227: Linha 233:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_10_-_Programação_1_-_Engenharia Strings]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_10_-_Programação_1_-_Engenharia Strings]
  
==03/10/2019: Vetores ==
+
==12/10/2023: Vetores ==
 
*Resolução de exercícios (1 - 11).
 
*Resolução de exercícios (1 - 11).
  
==09/10/2019: Arranjos Multidimensionais ==
+
==17/10/2023: Arranjos Multidimensionais ==
  
 
===Objetivos===
 
===Objetivos===
Linha 241: Linha 247:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_12_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Matrizes]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_12_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Matrizes]
  
==10/10/2019: Arranjos Multidimensionais ==
+
==19/10/2023: Arranjos Multidimensionais ==
  
 
===Objetivos===
 
===Objetivos===
Linha 250: Linha 256:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_12_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Matrizes]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_12_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Matrizes]
  
==16/10/2019: Resolução de Exercícios: vetores e matrizes==
+
==24/10/2023: Resolução de Exercícios: vetores e matrizes==
  
 
===Objetivos===
 
===Objetivos===
Linha 420: Linha 426:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
==17/10/2019: Exercícios de revisão==
+
==26/10/2023: Exercícios de revisão==
  
==23/10/2019: Estruturas==
+
==31/10/2023: Estruturas==
  
 
===Objetivos===
 
===Objetivos===
Linha 434: Linha 440:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas]
  
==24/10/2019: Avaliação 2==
+
==07/11/2023: Viagem ao REDITEC (Natal-RN)==
  
==30/10/2019: Correção Avaliação 2==
+
==09/11/2023: Viagem ao REDITEC (Natal-RN)==
 +
 
 +
==14/11/2023: Avaliação 2==
 +
 
 +
==16/11/2023: Correção Avaliação 2==
 
*Vista de Prova: [http://tele.sj.ifsc.edu.br/~tisemp/PRG/avaliacao_2.pdf Avaliação 2]
 
*Vista de Prova: [http://tele.sj.ifsc.edu.br/~tisemp/PRG/avaliacao_2.pdf Avaliação 2]
  
Linha 544: Linha 554:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
==31/10/2019: Estruturas (cont')==
+
==21/11/2023: Estruturas (cont')==
  
 
===Objetivos===
 
===Objetivos===
Linha 556: Linha 566:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_13_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Estruturas]
  
==06/11/2019: Ponteiros==
+
==23/11/2023: Ponteiros==
  
 
===Objetivos===
 
===Objetivos===
Linha 564: Linha 574:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_17_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Ponteiros]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_17_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Ponteiros]
  
==06/11/2019: Apresentação do Projeto da Disciplina==
+
==28/11/2023: Apresentação do Projeto da Disciplina==
  
 
===Objetivos===
 
===Objetivos===
Linha 574: Linha 584:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_Proposta_de_Projetos_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Proposta e Requisitos para os Projetos da Disciplina.]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_Proposta_de_Projetos_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Proposta e Requisitos para os Projetos da Disciplina.]
  
==13/11/2019: Vetor de Ponteiros==
+
==30/11/2023: Vetor de Ponteiros==
  
 
===Objetivos===
 
===Objetivos===
Linha 585: Linha 595:
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_19_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Vetor de Ponteiros e Ponteiro Para Estruturas.]
 
[https://wiki.sj.ifsc.edu.br/index.php/AULA_19_-_Programa%C3%A7%C3%A3o_1_-_Engenharia Vetor de Ponteiros e Ponteiro Para Estruturas.]
  
==14/11/2019: Acesso ao Sistema de Arquivos - parte 1==
+
==19/12/2023: '''AVALIAÇÃO 3'''==
 
 
==20/11/2019: Acesso ao Sistema de Arquivos - parte 2==
 
 
 
==21/11/2019: '''AVALIAÇÃO 3'''==
 
 
 
==27/11/2019: Desenvolvimento do Projeto==
 
 
 
==28/11/2019: Desenvolvimento do Projeto==
 
  
 
==04/12/2019: ''Apresentação do Projeto''==
 
==04/12/2019: ''Apresentação do Projeto''==

Edição das 11h07min de 25 de julho de 2023

PROFESSOR

Professor: Tiago Semprebom
Email: tisemp@ifsc.edu.br
diretório web:: tele.sj.ifsc.edu.br/~tisemp

IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.

ATENDIMENTO PARALELO

TERÇAS: 17h às 18h. QUINTAS: 11h às 12h.

LOCAL: Sala 2 de Professores de Telecomunicações / Gabinete da Direção-Geral.

MONITORIA

  • Aluno(a): Fulano de Tal
  • e-mail: xxxxxxxxx@aluno.ifsc.edu.br
  • Horários:

Segunda-feira: 13:30 - 15:30
Terça-feira: 13:30 - 16:30
Quarta-feira: 13:00 - 16:00
Quinta-feira: 16:00 - 17:30
Sexta-feira: 11:30 - 14:00

  • Local de Atendimento: Sala de monitoria (ao lado do banheiro masculino do térreo).

Links Interessantes

Aulas

27/07/2023: Introdução a algoritmos

Objetivos

  • Apresentação do Plano de Ensino;
  • Introdução a Fluxograma e pseudocódigo.

Material de Referência

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

01/08/2023: Lógica de Programação - Estruturas de Decisão

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

==03/08/2023: Viagem ao JIFSC (Blumenau)

08/08/2023: Lógica de Programação - Estruturas de Repetição

Objetivos

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

Material de Referência

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

10/08/2023: Lógica de Programação - Estruturas de Repetição (cont)

Objetivos

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

Material de Referência

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

15/08/2023: Lógica de Programação - Estruturas de Repetição (cont)

Objetivos

  • Estruturas de Decisão
  • Resolução de Exercícios

Material de Referência

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

17/08/2023: Introdução a Programação C

Objetivos

  • descrever o processo de compilação;
  • diferenciar código fonte, objeto e executável;
  • compilar, executar pequenos programa em C usando o gcc;
  • declarar e usar variáveis locais inteiras e reais;
  • usar as funções de entrada e saída: scanf() e printf().

Material de Referência

Introdução a Programação C

TAREFA

22/08/2023: Introdução a Linguagem C (exercícios)

Objetivos

Exercícios: Introdução a Linguagem C

Material e Referência

Introdução a Programação C

24/08/2023: Estruturas de Decisão

Objetivos

  • Utilizar os operadores relacionais e lógicos na programação C
  • um pouco mais sobre variáveis: tipo char
  • Utilizar o comando de decisão if else
  • Utilizar o comando switch

Material e Referência

Estrutura de Decisão

29/08/2023: Estruturas de Decisão

Objetivos

  • Utilizar os operadores relacionais e lógicos na programação C
  • um pouco mais sobre variáveis: tipo char
  • Utilizar o comando de decisão if else
  • Utilizar o comando switch

Material e Referência

Estrutura de Decisão

31/08/2023: Estruturas de Repetição

Objetivos

  • Estruturas de Repetição

Material e Referência

Estruturas de Repetição

05/09/2023: Estruturas de Repetição

Objetivos

  • Estruturas de Repetição (continuação)

Material e Referência

Estruturas de Repetição

07/09/2023: Estruturas de Repetição

Objetivos

  • Estruturas de Repetição (resolução de exercícios)

Material e Referência

Estruturas de Repetição

12/09/2023: Revisão para Avaliação

  • Resolução de exercícios.

Material e Referência

Estruturas de Repetição

14/09/2023: AVALIAÇÃO 1

19/09/2023: Viagem à Brasília

21/09/2023: Viagem à Brasília

26/09/2023: Vista de prova (Avaliação 1)

Objetivos

Material e Referência

Uso de IDE

28/09/2023: Conceito de Funções e Parâmetros

Objetivos

  • Funções e parâmetros
  • Variáveis Locais e Globais

Material e Referência

Funções

03/10/2023: Funções

Objetivos

  • Resoluções de exercícios sobre Funções.

Material e Referência

Funções

05/10/2023: Vetores

Objetivos

  • Compreender o conceito de vetores;
  • Definir e inicializar vetores do tipo int, float e double no C;
  • Passar vetores como parâmetro sem usar o conceito de ponteiros;

Material e Referência

Vetores

10/10/2023: Arranjos Vetores (strings)

Objetivos

  • Vetores de char e strings;
  • Processamento de Strings.

Material e Referência

Strings

12/10/2023: Vetores

  • Resolução de exercícios (1 - 11).

17/10/2023: Arranjos Multidimensionais

Objetivos

  • Definindo matrizes no C;
  • Operações com matrizes e passagem de parâmetros tipo matriz;
  • Matrizes com caracteres;
  • Exercícios.

Material e Referência

Matrizes

19/10/2023: Arranjos Multidimensionais

Objetivos

  • Matrizes com caracteres (strings);
  • Exercícios.

Material e Referência

Matrizes

24/10/2023: Resolução de Exercícios: vetores e matrizes

Objetivos

Questão 1

Implementar uma função C que recebe dois vetores de char como parâmetro. No primeiro vetor se encontra uma string qualquer. A função deve copiar esta string para o segundo vetor. A função deve retornar a quantidade de espaços em branco eliminados. Segue o esqueleto e uma saída para a situação colocada no main.

#include <stdio.h>
int eliminar_espaco(char x[], char y[])
{
}

main()
{
}
solução
//desenvolvido pelo aluno: Jeferson Jair (2019-1)

#include <stdio.h>

int contar_espaco(char x[], char y[]){

    int i, cont=0;

    for(i=0; x[i]!=0 ;i++){
       y[i]=x[i];
       if(x[i]==' ')
         cont++;
    }
    y[i++]=0;
    return cont;
}

int main(){

   char a[40] = "Instituto Federal do Santa Catarina";
   char b[40];

   printf("String b = %s com um total de %d espaços\n", b, contar_espaco(a,b));

   return 0;
}
solução
#include <stdio.h>
 
int eliminar_espaco(char x[], char y[])
{
   int i, /* index do vetor fonte */
       j, /* index do vetor de destino */
       cont;
   
   i=0;
   j=0;  
   cont=0;
   while(x[i]!='\0') {
     if (x[i]==' ') {
         cont++; /* contar ocorrências do espaço */
     } else {
         y[j]=x[i]; /* copiar normalmente */
         j++;       /* incrementar para avançar o index de y após a cópia */
     } 
     i++; /* sempre avançar o index de x */
   }
   y[j]='\0';
   return cont; /* retornar a contagem de espaços */
}
 
int main()
{
  char vetor1[100]=" Instituto Federal de Santa Catarina ",
       vetor2[100];

  int espacos;

  espacos = eliminar_espaco(vetor1, vetor2);

  printf("vetor final = %s - total espaços = %d\n", vetor2, espacos);  
  return 0;
}

Questão 2

Implementar uma função que recebe um vetor de inteiros e sua dimensão como parâmetros. A função deve retornar a média de TODOS os números ímpares NÃO NEGATIVOS contidos no vetor. Uma demonstração do uso da função deve ser apresentado no programa principal (função main) usando variáveis inicializadas (NÃO USAR scanf)

solução
#include <stdio.h>
 
float media_num_impar(int x[], int len)
{
  int i,soma,cont;
  
  soma=0;
  cont=0;
  for (i=0;i<len;i++){
     if (x[i]>0 && x[i]%2==1) {
        soma = soma + x[i];
        cont++;
     }
  }
  return (float)soma/cont; /* aqui teria um problema de truncamento se não houver casting*/
}
 
main()
{
  int alfa[5]={-5,-3,7,10,11};
  float media;

  media = media_num_impar(alfa, 5);
  printf("media ímpares não negativos do vetor = %f\n", media);
}

Questão 3

Implementar uma função que recebe uma matriz de floats 5x5 como parâmetro. A função deve computar a média de todos os números que fazem parte de linhas PARES e colunas ÍMPARES (considerando sempre que a primeira linha é a 0 e a primeira coluna é 0). Uma demonstração do uso da função deve ser apresentado no programa principal (função main) usando variáveis inicializadas (NÃO USAR scanf)

solução
#include <stdio.h>
 
#define TAM 5
 
float media_lin_col(float vet[TAM][TAM])
{
  int i,j;
  float media_soma=0;
  int cont=0;

  for (i=0;i<TAM;i++)
     for (j=0;j<TAM;j++) {
       if((i%2==0)&&(j%2==1)) {
          media_soma = media_soma + vet[i][j];
          cont++;
       }
     }
  media_soma = media_soma/cont;
  return media_soma;
}
 
int main()
{
  float x[TAM][TAM] = { 1 ,2, 3, 4 ,5,
                        1 ,2, 3, 4 ,5,
                        1 ,2, 3, 4 ,5,
                        1 ,2, 3, 4 ,5,
                        1 ,2, 3, 4 ,5,
                      };

  float media;

  media = media_lin_col(x);
  printf("Média: %.2f\n", media);
  return 0;
}

26/10/2023: Exercícios de revisão

31/10/2023: Estruturas

Objetivos

  • Definição de estruturas;
  • Estruturas como parâmetros;
  • Inicialização de estruturas;
  • Cópia de estruturas;
  • Exercícios com estruturas.

Material e Referência

Estruturas

07/11/2023: Viagem ao REDITEC (Natal-RN)

09/11/2023: Viagem ao REDITEC (Natal-RN)

14/11/2023: Avaliação 2

16/11/2023: Correção Avaliação 2

Exercício 1
#include <stdio.h>

int str_copy_invert(char origem[], char destino[]){
    int i=0,j=0,tam=0;

    while(origem[i]!=0){
        tam++;
        i++;
    }

    for(i=(tam-1);i>=0;i--){
        destino[j] = origem[i];
        j++;
    }
    destino[j] = 0;
    return tam;
}

int main(){
    char vet[10]="IFSC-SC", vet1[10];
    int contador;

    contador=str_copy_invert(vet,vet1);

    printf("A string invertida eh: %s e possui %d caracteres\n",vet1, contador);
    return 0;
}
Exercício 2
//Solução: Rhenzo Hideki
#include <stdio.h>

float func_media(int aux1[10])
{
    float media_local=0,j=0;
    for (int i = 0; i < 10 ; i++) {
        if (aux1[i] <= 26 && aux1[i] >= -5) {
            media_local = aux1[i] + media_local;
            j++;
        }
    }
    return(media_local/j);
}

int main()
{
    int vetor[10]={8,25,13,45,-15,-1,6,2,-19,70};
    float media;

    media=func_media(vetor);

    printf("A media do vetor dos valores entre -5 e 26 é: %f\n",media);

    return 0;
}
Exercício 3
//Solução: Vilian Nicoladeli
#include <stdio.h>

#define tam 4
int linha = 0, coluna = 0;

int prod_matriz (int mat_copy [tam][tam]){

  int i = 0, j = 0, produto = 0;

  for(i = 0;  i < tam; i++) {
    if(mat_copy [i] [1] == 0)
      coluna++;
    for (j = 0; j < tam; j++) {
      if (mat_copy[i][j] == 0)
          linha++;
    }
  }
  linha = linha / tam;
  coluna = coluna / tam;
  produto = linha * coluna;

  return produto;
}

int main (){

  int mat [tam][tam] = {1, 0, 2, 3,
                        4, 0, 5, 6,
                        0, 0, 0, 0,
                        0, 0, 0, 0};
  int produto = 0;

  produto = prod_matriz(mat);
  printf("Produto de %d linhas nulas e %d colunas nulas é de: %d\n", linha, coluna, produto);
  return 0;
}

21/11/2023: Estruturas (cont')

Objetivos

  • Definição de estruturas;
  • Estruturas como parâmetros;
  • Inicialização de estruturas;
  • Cópia de estruturas;
  • Exercícios com estruturas.

Material e Referência

Estruturas

23/11/2023: Ponteiros

Objetivos

iniciação ao uso de ponteiros no C.

Material e Referência

Ponteiros

28/11/2023: Apresentação do Projeto da Disciplina

Objetivos

  • Exercícios Ponteiros em C.

Material e Referência

Ponteiros

Proposta e Requisitos para os Projetos da Disciplina.

30/11/2023: Vetor de Ponteiros

Objetivos

  • Vetor de ponteiros;
  • argc e argv;
  • ponteiros para qualquer coisa;
  • ponteiros para estruturas.

Material e Referência

Vetor de Ponteiros e Ponteiro Para Estruturas.

19/12/2023: AVALIAÇÃO 3

04/12/2019: Apresentação do Projeto

05/12/2019: Apresentação do Projeto

11/12/2019: Correção Avaliação 2

Exercício 1
#include <stdio.h>
#include <stdlib.h>

void calculadora (float *num1, float *num2,char *op){
    float a1,a2;
    char p;

    p=*op;
    a1=*num1;
    a2=*num2;

    switch (p)
    {
        case '+':
            printf("resultado: %.2f ",(a1+a2));
            break;

        case '-':
            printf("resultado: %.2f ",(a1-a2));
            break;

        case '*':
            printf("resultado: %.2f ",(a1*a2));
            break;

        case '/':
            if (num2!=0){
                printf("resultado: %.2f ",(a1/a2));
            } else {
                printf("Invalido \n");
            }
            break;

        default:
            printf("Invalido \n");
            break;
    }

}

void main (int argc,char *argv[4]){

    float num1 , num2;

    num1=atof(argv[1]);
    num2=atof(argv[3]);

    calculadora(&num1,&num2,argv[2]);
}
Exercício 2
#include <stdio.h>

struct ret{
    float a;
    float b;
}z1,z2,z3;

void soma( struct ret *a1,struct ret *a2, struct ret *a3) {
    a3->a=a1->a+a2->a;
    a3->b=a1->b+a2->b;

}

int main (){
    z1.a=1;
    z1.b=5;

    z2.a=1;
    z2.b=2;

   soma(&z1,&z2,&z3);

   printf("Z3 = %.2f + j%.2f ",z3.a,z3.b);
}
Exercício 3
#include <stdio.h>
int str_copy(char *fonte, char *destino){
    int i=0,j=0;
    while(fonte[i]!=0){
        if (fonte[i]>97&&fonte[i]<123) {
            destino[i] = fonte[i] - 32;
        } else{
            destino[i] = fonte[i];
        }
        i++;
        j++;
    }
    destino[j++]=0;
    return i;
}

void main(){
    char alfa[10] = "ifsc-sje";
    char beta[10];
    int tamanho;

    tamanho=str_copy(alfa,beta);
    printf("tamanho:%d\nbeta:%s",tamanho,beta);
}

12/12/2019: Recuperações Finais