Senhores Alunos:
Abaixo encontra-se o link que permite acessar o material da aula de hoje.
Até breve
quinta-feira, 24 de outubro de 2013
segunda-feira, 21 de outubro de 2013
Programação C - Resolução da questão 1 da avaliação simulada
Senhores alunos:
Segue a solução da questão 1 da avaliação simulada, sem a parte de arquivos (O vetor a ser separado foi definido no inicio da rotina main ).
------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int* separa(int*);
int main()
{
int vetor_par[20]={1,4,6,7,9,10,12,2,-1},*vetor_impar,k=0,j=0;
vetor_impar=separa(vetor_par);
while(vetor_par[k]!=-1)
{
printf("%d ",vetor_par[k]);
k++;
}
while(vetor_impar[j]!=-1)
{
printf("%d ",vetor_impar[j]);
j++;
}
return 0;
}
int* separa(int* ptr)
{
int vetor_aux[10];
int i=0,k=0,j=0,n;
// coloca os pares no vetor original
// e os impares em um vetor auxiliar
while(ptr[i]!=-1)
{
if(ptr[i]%2)
{
vetor_aux[k]=ptr[i];
k++;
}
else
{
ptr[j]=ptr[i];
j++;
}
i++;
}
ptr[j]=-1; // fim do vetor com os pares
vetor_aux[k]=-1;// fim do vetor auxiliar
k=0; // reinicializa indice do vetor auxiliar
n=++j; // gera endereço de retorno(inicio do vetor com os impares)
// coloca os impares após os pares no vetor original
while(vetor_aux[k]!=-1)
{
ptr[j]=vetor_aux[k];
k++;
j++;
}
ptr[j]=-1; //fim do vetor com os impares
return &ptr[n];
}
Segue a solução da questão 1 da avaliação simulada, sem a parte de arquivos (O vetor a ser separado foi definido no inicio da rotina main ).
------------------------------------------------------------------
Faça
um programa que leia de um arquivo um vetores de números inteiros
positivos e o separe em dois vetores: um com os números pares e
outro com os números pares.
Como
deve ser o programa:
- Deve conter uma função que leia o vetor. (void le_vetor(int*) );
- Deve conter uma função que separe os vetores em 2 vetores ( int* separa(int*) ):
- um com os números pares e que começa na mesma posição (mesmo endereço) do vetor original;
- outro com os números impares, que começa na posição de memória logo após o término do vetor de números pares;
- ambos os vetores devem ser terminados por $;
- deve retornar um ponteiro com o endereço do primeiro elemento do vetor de números ímpares
- O programa principal deve gravar no arquivo original os dois vetores a partir das seguintes informações:
- O vetor de pares a partir do ponteiro que aponta para o primeiro elemento do vetor original;
- O vetor de ímpares a partir do ponteiro retornado pela função;
#include <stdio.h>
#include <stdlib.h>
int* separa(int*);
int main()
{
int vetor_par[20]={1,4,6,7,9,10,12,2,-1},*vetor_impar,k=0,j=0;
vetor_impar=separa(vetor_par);
while(vetor_par[k]!=-1)
{
printf("%d ",vetor_par[k]);
k++;
}
while(vetor_impar[j]!=-1)
{
printf("%d ",vetor_impar[j]);
j++;
}
return 0;
}
int* separa(int* ptr)
{
int vetor_aux[10];
int i=0,k=0,j=0,n;
// coloca os pares no vetor original
// e os impares em um vetor auxiliar
while(ptr[i]!=-1)
{
if(ptr[i]%2)
{
vetor_aux[k]=ptr[i];
k++;
}
else
{
ptr[j]=ptr[i];
j++;
}
i++;
}
ptr[j]=-1; // fim do vetor com os pares
vetor_aux[k]=-1;// fim do vetor auxiliar
k=0; // reinicializa indice do vetor auxiliar
n=++j; // gera endereço de retorno(inicio do vetor com os impares)
// coloca os impares após os pares no vetor original
while(vetor_aux[k]!=-1)
{
ptr[j]=vetor_aux[k];
k++;
j++;
}
ptr[j]=-1; //fim do vetor com os impares
return &ptr[n];
}
domingo, 20 de outubro de 2013
Circuitos Elétricos III - Lista de exercícios - ressonância
Cliquem aqui para baixar uma lista com exercícios sobre ressonância selecionados a partir do livro texto (SADIKU) e de EDMINISTER, Joseph. Circuitos Elétricos. Rio de Janeiro: McGraw-Hill do Brasil, 1971.
Lembrem que a segunda avaliação está marcada para o dia 01/11.
Boa semana!
terça-feira, 15 de outubro de 2013
Introdução a Programação em Linguagem C - aula de 16/10
Cliquem aqui para acessar o material da aula de hoje.
Assunto: Ponteiros.
Até breve!
Programação C - Tecnólogo - Aula de 17/10
O material da nossa aula de hoje disponível no link abaixo:
- Aula de 17/10 - Operações bit a bit.
Boa semana!
quarta-feira, 9 de outubro de 2013
Introdução a Programação C - Aula de 09/10
Segue o link para acessar o material da nossa aula de hoje:
- Classes de Armazenamento;
- O Pré-processador C e as macros.
Até a noite!
quinta-feira, 3 de outubro de 2013
Programação C - Uso de acentuação no Code::Blocks
Senhores Alunos:
Conforme informação repassada pela aluna Taiana do Curso Técnico noturno, é possível utilizar os caracteres acentuados do Português no Code::Blocks sem precisar utilizar o código ascii hexa correspondente. Basta incluir o arquivo de cabeçalho
#include <locale.h>
e a linha de comando
setlocale(LC_ALL,"portuguese");
Resolvi, então, pesquisar como seria possível incluir de forma permanente estas linhas, para evitar que, a cada novo projeto, elas tivessem que ser adicionadas.
É muito simples, basta editar com o bloco de notas, por exemplo, o arquivo main.c que se encontra na pasta
...\CodeBlocks\templates\wizard\console\c
fazendo com que ele, por exemplo, tome a seguinte forma
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"portuguese");
printf("Alô mundo!\n");
return 0;
}
O arquivo provavelmente deve ser protegido contra escrita. Neste caso, salve ele em outra pasta e depois substitua o arquivo original por esse arquivo.
Está feito! Quando for criado um novo projeto de console, este será o arquivo main.c que será inserido no mesmo.
Boa noite!
Conforme informação repassada pela aluna Taiana do Curso Técnico noturno, é possível utilizar os caracteres acentuados do Português no Code::Blocks sem precisar utilizar o código ascii hexa correspondente. Basta incluir o arquivo de cabeçalho
#include <locale.h>
e a linha de comando
setlocale(LC_ALL,"portuguese");
Resolvi, então, pesquisar como seria possível incluir de forma permanente estas linhas, para evitar que, a cada novo projeto, elas tivessem que ser adicionadas.
É muito simples, basta editar com o bloco de notas, por exemplo, o arquivo main.c que se encontra na pasta
...\CodeBlocks\templates\wizard\console\c
fazendo com que ele, por exemplo, tome a seguinte forma
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,"portuguese");
printf("Alô mundo!\n");
return 0;
}
O arquivo provavelmente deve ser protegido contra escrita. Neste caso, salve ele em outra pasta e depois substitua o arquivo original por esse arquivo.
Está feito! Quando for criado um novo projeto de console, este será o arquivo main.c que será inserido no mesmo.
Boa noite!
Lista de Exercícios - Sistemas de Controle
A partir do link abaixo é possível acessar a lista complementar ao Capítulo III da apostila.
Lista complementar do Capítulo III.
**** Correção das Respostas ****
**** Questão 2 (a): ess =0 ****
**** Questão 4: Kv = 1,667. ****
*****************************
Até breve!
Programação C - Tecnólogo
Srs alunos:
Segue solução, não otimizada, do exercício que solicitava a leitura de dois vetores A e B de um arquivo e a gravação em outro arquivo de um vetor
C = A U B. Era admitido que os vetores não possuíam elementos repetidos e que o resultado não precisava ser ordenado.
Até a próxima postagem!
------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{ int vetor1[20];
int vetor2[40];
int k=0,n,max1,max2,j,l,a=0;
char nomearq[] = {"vetores.txt"},nomearq1[] = {"c:\\Users\\Marco\\Documents\\2013_2\\uniao.txt"};
FILE *fp, *fp1;
fp=fopen(nomearq,"r");
if(fp==NULL) exit(1);
fp1=fopen(nomearq1,"w");
if(fp1==NULL) exit(1);
while(1)
{ fscanf(fp,"%d ",&vetor1[k]);
if(vetor1[k]==-1)break;
k++;
}
max1=k-1;
k=0;
while(1)
{ fscanf(fp,"%d ",&vetor2[k]);
if(vetor2[k]==-1)break;
k++;
}
max2=k-1;
k=0;
fclose(fp);
for(j=0;j<=max1;j++)
for(l=0;l<=max2;l++)
{
if(vetor1[j]==vetor2[l])break;
if(l==max2)
{
a++;
vetor2[max2+a]=vetor1[j];
}
}
for(l=0;l<=(max2+a);l++)
fprintf(fp1,"%d ",vetor2[l]);
printf("Arquivo gravado");
fclose(fp1);
return 0;
}
Assinar:
Postagens (Atom)