Jeferson Ricardo Tichz
Pagina Jeferson Ricardo Tichz ( Engenharia 14.2)
PRG
Aula 02/06/15
Implementar um programa integrado com a placa que ao chegar a uma temperatura acende um led.
Implementar STEREZE.
Implementar um programação em C que vai ter um um setup de temperatura setup programa (digite a temperatura) led para verificar se esta ligado(indica o funcionamento) outra para mostrar a carga.
Mostrando quantos graus no display em ºC.
Aula 28/05/15
- Exemplo
struct Taluno{
int matricula;
char[40] nome;
char[11] data_nasc;
struct Taluno *prox; // para ser indefinido qantos ALUNOS teram esta estrutura
}Aluno;
typedef struct Aluno al; //defindo nome mais facil para trabalhar
al a; //pra chamar mais facil como variavel
al *pa; //defindo estrutura como vetor (ponteiro)
pa->nome; //pegando o conteudo do pa que eh um ponteiro para al q eh o alias para Aluno no campo nome
- Exemplo1.c
#include <stdio.h>
#include <stdlib.h>
struct cel {
int conteudo;
struct cel *prox;
}cel;
typedef struct cel celula;
void main( celula *ini) {
celula *p;
for (p = ini->prox; p != NULL; p = p->prox)
printf( "%d\n", p->conteudo);
}
//não deu certo xD
// Esta função recebe um inteiro x e uma lista
// encadeada ini de inteiros, com celula-cabeça.
// A função devolve o endereço de uma celula que
// contém x ou devolve NULL se tal celula não existe.
//retorna o endereco que esta sendo localisado nao o conteudo
celula *busca( int x, celula *ini) //vai buscar por x apartir de uma celula inicial
{
celula *p;
p = ini->prox;
while (p != NULL && p->conteudo != x)
p = p->prox;
return p;
}
- Exercicio 1
#include <stdlib.h>
#include <stdio.h>
/*========================*/
/** OPERAÇÔES COM LISTA LIGADA ******/
/*========================*/
/*
* tipos e variáveis globais
* */
struct TProduto{
int codigo;
struct TProduto *next;main()
{
int i,vlr,qtd;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5#include <stdlib.h>
#include <stdio.h>
/*========================*/
/** OPERAÇÔES COM LISTA LIGADA ******/
/*========================*/
/*
tipos e variáveis globais
*/
struct TProduto{
int codigo;
struct TProduto *next;
} *head, *tail;
/*
adiciona item a cabeça da lista
retorna 0 se tudo ok e -1 se erro
*/
int add_nodo_head(int codigo)
{
}
/*
adiciona item ao final lista
retorna 0 se tudo ok e -1 se erro
*/
int add_nodo_tail(int codigo)
{
struct TProduto *p = malloc (sizeof(struct TProduto));
if (!p)
return -1;
p->codigo = codigo;
p->next = NULL;
if (tail==NULL) {
/* lista vazia */
tail = head = p;
}else {
/*lista não vazia */
tail->next = p;
tail = p;
}
return 0;
}
/*
imprimir lista
*/
void print_list()
{
};i++)
// add_nodo_tail(i);
print_list (head);
//print_list(tail);
}#include <stdlib.h>
#include <stdio.h>
/*========================*/
/** OPERAÇÔES COM LISTA LIGADA ******/
/*========================*/
/*
* tipos e variáveis globais
* */
struct TProduto{
int codigo;
struct TProduto *next;main()
{
int i,vlr,qtd;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5;i++)
// add_nodo_tail(i);
print_list (head);
//print_list(tail);
}
} *head, *tail;
/*
* adiciona item a cabeça da lista
* retorna 0 se tudo ok e -1 se erro
* */
int add_nodo_head(int codigo)
{
}
/*
* adiciona item ao final lista
* retorna 0 se tudo ok e -1 se erro
* */
int add_nodo_tail(int codigo)
{
struct TProduto *p = malloc (sizeof(struct TProdumain()
{
int i,vlr,qtd;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5;i++)
// add_nodo_tail(i);
print_list (head);main()
{
int i,vlr,qtd;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5;i++)
// add_nodo_tail(i);
print_list (head);
//print_list(tail);
}
//print_list(tail);
}
to));
if (!p)
return -1;
p->codigo = codigo;
p->next = NULL;
if (tail==NULL) {
/* lista vazia */
tail = head = p;
}else {
/*lista não vazia */
tail->next = p;
tail = p;
}
return 0;
}
/*
* imprimir lista
* */
void print_list(struct TProduto *ini)
{
typedef struct TProduto produto;
produto *p;
for (p = ini; p != NULL; p = p->next){
printf( "%p\t%d\t\n",p, p->codigo);
}
}
} *head, *tail;
/*
* adiciona item a cabeça da lista
* retorna 0 se tudo ok e -1 se erro
* */
int add_nodo_head(int codigo)
{
}
/*
* adiciona item ao final lista
* retorna 0 se tudo ok e -1 se erro
* */
int add_nodo_tail(int codigo)
{
struct TProduto *p = malloc (sizeof(struct TProdumain()
{
int i,vlr,qtd;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5;i++)
// add_nodo_tail(i);
print_list (head);main()
{
int i,vlr,qtd;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5;i++)
// add_nodo_tail(i);
print_list (head);
//print_list(tail);
}
//print_list(tail);
}
to));
if (!p)
return -1;
p->codigo = codigo;
p->next = NULL;
if (tail==NULL) {
/* lista vazia */
tail = head = p;
}else {
/*lista não vazia */
tail->next = p;
tail = p;
}
return 0;
}
/*
* imprimir lista
* */
void print_list(struct TProduto *ini)
{
typedef struct TProduto produto;
produto *p;
for (p = ini; p != NULL; p = p->next){
printf( "%p\t%d\t\n",p, p->codigo);
}
}
main()
{
int i;
head = tail = NULL;
//print_list (tail);
for (i=0;i<5;i++)
add_nodo_tail(i);
print_list (head);
print_list(tail);
}
- Atividades fazer o programa perguntar qual numero quer alterar e o altera-lo
#include <stdlib.h>
#include <stdio.h>
/*========================*/
/** OPERAÇÔES COM LISTA LIGADA ******/
/*========================*/
/*
tipos e variáveis globais
*/
struct TProduto{
int codigo;
struct TProduto *next;
} *head, *tail;
/*
adiciona item a cabeça da lista
retorna 0 se tudo ok e -1 se erro
*/
int add_nodo_head(int codigo)
{
}
/*
adiciona item ao final lista
retorna 0 se tudo ok e -1 se erro
*/
int add_nodo_tail(int codigo)
{
struct TProduto *p = malloc (sizeof(struct TProduto));
if (!p)
return -1;
p->codigo = codigo;
p->next = NULL;
if (tail==NULL) {
/* lista vazia */
tail = head = p;
}else {
/*lista não vazia */
tail->next = p;
tail = p;
}
return 0;
}
/*
imprimir lista
*/
void print_list(struct TProduto *ini)
{
typedef struct TProduto produto;
produto *p;
for (p = ini; p != NULL; p = p->next){
printf( "%p\t%d\t\n",p, p->codigo);
}
}
main()
{
int i,vlr,qtd,mudar,novo;
head = tail = NULL;
printf("Entre com a quantidade de numeros: ");
scanf("%d",&qtd);
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
add_nodo_tail(vlr);
}
// head = tail = NULL;
//print_list (tail);
// for (i=1;i<5;i++)
// add_nodo_tail(i);
print_list (head);
printf("Digite o numero que voce quer alterar: ");
scanf("%d",&mudar);
for(i = 1; i <= qtd; i++){
if (*p==mudar){
printf("Digite o numero que voce quer: ");
scanf("%d",&novo);
add_nodo_tail(p);
}//else {printf("Digite um numero valido ");}
}
print_list(head);
}
Aula 26/05/15
- EXEMPLO 1
Alocação dinâmica de números inteiros (exercício puramente didático):
#include <stdlib.h>
main()
{
int *px, *py;
int resultado;
px = (int *) malloc(sizeof(int)); // endereco de memoria
*px = 5; // conteudo da memoria
py = (int *) malloc(sizeof(int));
*py = 2;
resultado = *px + *py;
free (px);
px = NULL;
free (py);
py = NULL;
}
exemplo2
#include <stdio.h>
#include <stdlib.h>
int main(void){
int *valores, *aux;
int qtd, i, vlr;
printf("\nEntre com a quantidade de números: ");
scanf("%d", &qtd);
if(qtd == 0)
exit(0);
//Aloca um vetor com a quantidade recebida em qtd
valores = (int *) calloc(qtd, sizeof (int));
//Imprime o endereco e valor (zero) para a quantidade de números informada
aux = valores;
for(i = 1; i <= qtd; i++){
printf("%p\t%d\n", aux, *aux);
aux++;
}
aux = valores; //Ponteiro para o primeiro espaço de memória
for(i = 1; i <= qtd; i++){
printf("Digite o número %d ->: ", i);
scanf("%d", &vlr);
*aux = vlr;
aux++;
}
aux = valores; //Retorna à posição inicial no mapa de memória
for(i = 1; i <= qtd; i++){
printf("%p\t%d\n", aux, *aux);
aux++;
}
free(valores);
return 0;
}
- Ver realocando memoria
#include <stdio.h>
#include <stdlib.h>
void main()
{
struct TTeste{
int x;
int y;
} *teste;
if ((teste = (struct TTeste *) malloc (100*sizeof(struct TTeste)))==NULL) {
printf("erro de alocação");
exit(1);
}
teste[0].x= 5;
printf("\n %p e %d\n",&teste[0],teste[0].x);
if ((teste = realloc(teste, 10000*sizeof(struct TTeste)))==NULL) {
printf("erro de alocação");
exit(1);
}
printf("\n %p e %d\n",&teste[0],teste[0].x);
teste[1].x=20;
printf("\n %p e %d\n",&teste[1],teste[1].x);
free(teste);
}
Aula 19/05/15
- Execicio2.c
#include <stdio.h>
main()
{
int x[10]= {0,1,2,3,4,5,6,7,8,9};
int *p;
int i;
char w[10]="ifsc";
char *u, y;
u = w + 2;
y= *u;
p=x; //sem & pois eh um vetor se fosse pegar a possicao expecifica p=&x[3];
printf("%c e %s\n",y,u);
i=0;
while (i<10) {
printf(" endereco %p e conteudo %d\n", p, *p);
p++;
i++;
// pula de 4 em 4 pq eh um veltor inteiro e reserva 8bits
}
}
- Execiciochar3.c
#include <stdio.h>
void str_cpy(char *pdest, char *pfonte)
{
while (*pfonte!=0) {
*pdest++ = *pfonte++; //primeiro iguala depois incremeta
}
*pdest = 0;
}
int str_len (char *p)
{
int i=0;
while (*p++!=0)
i++;
return i;
}
main()
{
char fonte[100]="qwertyuiopçlkjhgfdsazxcvbnmifsc";
char destino[100];
str_cpy(destino, fonte);
printf("string destino = %s\n", destino);
printf("tamanho de dest = %d\n", str_len(destino));
}
- exercicio
#include <stdio.h>
void main()
{
float fpi=3.1415, *pf, **ppf;
pf=&fpi; // pf armazena o endereco de fpi
ppf=&pf; // ppf armazena o endereco de pf
printf("\n%f", **ppf); // imprime o valor de fpi por ppf
printf("\n%f", *ppf); // imprime o endereco pf
printf("\n%f", pf); // imprime o endereco pf
printf("\n%f", *pf); // imprime o valor de fpi por pf
}
- exemplo
#include <stdio.h>
int main()
{
int i;
char *vp[4];
char alfa[5]="IFSC";
char beta[5]="TELE";
char delta[5]="RAC";
char gamma[5]="CGER";
vp[0] = alfa;
vp[1] = beta;
vp[2] = delta;
vp[3] = gamma;
for(i=0;i<4;i++)
printf("%s\t e o endereço %p\n", vp[i],vp[i]); // imprime o endereco %p
}
- Mt bom
#include <stdio.h>
main(int argc, char *argv[])
{
int i,soma=0;
for (i=0;i<argc;i++) {
printf("%s\n", argv[i]);
soma=soma+atoi(argv[i]);
}
printf("Numero de parametros passados = %d\n", argc-1); /* o primeiro é o nome do arquivo executavél" */
printf("Soma =%d\n",soma);
}
Aula 12/05/15
Aula 30/04/15
#include <stdio.h>
struct Televador{
int andar,uso,load,estado;
char emergencia[5];
}elevador;
struct Tprevisaotempo{
char precipitacao[5],temporal[5],codigo_vermelho[10];
int temperatura;
struct Tdata data;
}previsao;
struct Tdata{
int hora;dia,semana,mes,ano;
}data;
struct Tautomovel{
int portas,load,peso,passageiros,eixos,tanque_l,potencia,cv,doc_veicular,ano;
char combustivel[20],proprietario[45];
}automovel;
Aula 28/04/15
- Aula 28-04 link
- Continuação de estruturas
- Quando o "i" sai do "for" incrementa mais 01 antes de sai do for exemplo:
void tratar_usuario()
{
char senha[10];
int userEncontrado=1;
int i;
/*
Loop para encontrar o usuário na tabela.
Ao final do loop a variavel i conterá o índice do usuário (se ele estiver
na tabela
*/
for (i=0;i<4 && userEncontrado; i++) {
if( strcmp(userID, TabelaUsuarios[i].UserId)==0)
userEncontrado=0;
}
/* se usuário encontrado abre a porta */
if (userEncontrado==0) {
printf("Bom dia %s! Entre com a senha\n", userID);
scanf("%s",senha);
i--; /* o indice do sujeito é i-1 */
if(strcmp(senha,TabelaUsuarios[i].Senha)==0)
printf("Abrir porta!!!\n");
else
printf("Senha Inválida\n");
}
}
- Se usar o break o indice sai com o valor certo. Exemplo:
for (i=0;i<4 && userEncontrado; i++) {
if( strcmp(userID, TabelaUsuarios[i].UserId)==0)
if (userEncontrado==0)
{
break;
}
}
- meu codigo
#include <stdio.h>
#include <string.h>
/**********************************************/
/*** PROGRAMA DE CONTROLE DE ACESSO **/
/** Autor: TurmaENG.TELECOM - 2012.2 */
/**********************************************/
/** VARIÁVEIS GLOBAIS DESTE MÓDULO ****/
struct TRegistroUsuario {
char UserId[10];
char Senha[10];
int estado;
};
/* Tabela de Usuários */
struct TRegistroUsuario TabelaUsuarios[4] = {
{"joao","abcd",1},
{"maria","xxxx",1},
{"jose","yyyy",1},
{"lara","zzzz",1},
};
char userID[20];
int cont=0,conta=0;
/** FUNÇÔES DESTE MÓDULO ****/
void mostrar_menu_entrada_usuario()
{
system("clear");
printf("*******************************\n");
printf("Entre com o seu USERID para ter acesso\n");
printf("**************** # Maximo 10 tentetivas # ***************\n");
printf("######## Sua tentativa é = %d ##############\n",cont);
}
/** Função que implementa as tarefas do administrador **/
void administrar()
{
int i;
for(i=0;i<4;i++){
TabelaUsuarios[i].estado=1;
printf("Ok tudo liberado!!!!!\n");
system("sleep 01");
}
}
/** Função que valida um usuário e abre a porta **/
void tratar_usuario()
{
char senha[10];
int userEncontrado=1;
int i;
//int conta=0;
/*
* Loop para encontrar o usuário na tabela.
* Ao final do loop a variavel i conterá o índice do usuário (se ele estiver
* na tabela
* */
//if(cont<=3){
for (i=0;i<4 && userEncontrado; i++) {
if( strcmp(userID, TabelaUsuarios[i].UserId)==0)
userEncontrado=0;
}
/* se usuário encontrado abre a porta */
if(userEncontrado==1){printf("usuario não cadastrado\n");system("sleep 01");}
if (userEncontrado==0 && TabelaUsuarios[i-1].estado==0) {printf("Usuario bloqueado\n"); system("sleep 01");}
if (userEncontrado==0 && TabelaUsuarios[i-1].estado==1) {
printf("Bom dia %s! Entre com a senha\n", userID);
scanf("%s",senha);
cont=0; //acertou o usuario zera o contador
i--; /* o indice do sujeito é i-1 */
if(strcmp(senha,TabelaUsuarios[i].Senha)==0)
{printf("Abrir porta!!!\n");
system("sleep 01");
cont=0;//acertou a senha
}
else
{printf("Senha Inválida\n");
conta++;
cont++;
system("sleep 01");
if (conta==3){
TabelaUsuarios[i].estado=0;
printf("Usuario %s esta bloqueado!!!\n",TabelaUsuarios[i].UserId);
system("sleep 01");
}
}
}
cont++;
}
void main()
{
//int cont=0;
for(;;) {
mostrar_menu_entrada_usuario();
scanf("%s",userID);
if (strcmp(userID, "admin")==0) {
administrar();
} else {
//if (cont<=3){
tratar_usuario();//cont++;
}
// cont++;
//printf("Contador %d",cont);
if(cont>=10){
printf("Usuario Invalido\n");
system("sleep 02");
break;
}
}
}
Aula 16/04/15
- Aula 18-14 link
Aula 14/04/15
- Continuação Aula 16 link
- Exercicio I
#include <stdio.h>
void main()
{
int a,b;
float media1,media2;
a=13;
b=a++;
media1=(a/b);
media2=(float)a/b;
printf("a= %d e b= %d media1= %.2f media2=%.4f\n",a,b,media1,media2);
}
- Exemplo II
#include <stdio.h>
#define PI 3.1415
//#define valores fixo antes de começar
void main()
{
int a,b;
float media1,media2;
a=13;
b=a++;
media1=(a/b);
media2=(float)(a+b+PI)/3;
printf("a= %d e b= %d media1= %.2f media2=%.4f\n",a,b,media1,media2);
}
- Exemplo III
#include <stdio.h>
void main()
{
int num[3][2]={9,8,7,6,5,4,3};
printf("num[1][2]=%d e num[2][2]=%d\n",num[1][2],num[2][2]);
}
- Exemplo IV
{9, 8, 7, 6, 5, 4, 3} 00,01,10,11,20,21,30 posição na matriz verificando a posição da matriz:
#include <stdio.h>
#define PI 3.1415
void main()
{
int a,b=0;
int num[3][2]={9,8,7,6,5,4,3};
for (a=0;a<3;a++)
{
for (b=0;b<2;b++)
{
printf("\n num[%d][%d]= %d\n",a,b,num[a][b]);
}
}
}
- Exemplo de um erro muito louco
#include <stdio.h>
main()
{
char TabelaUsuarios[4][10] = {
"11111 111111",
"22222 222222",
"33333 333333",
"44444 444444",
};
int i;
for (i=0;i<4;i++)
printf("%s\n",&TabelaUsuarios[i][0]);
}
- Desafio fazer parar qando nao haver mais trocas
#include <stdio.h>
void mostra_vet(int vet_aux[],int tam,int tipo) // tipo=0 vertical \n tipo=1 horizontal \t
{
int i;
if(tipo==0)
printf("\n"); // vai deixar uma linha em branco só no tipo que quero.
for(i=0;i<tam;i++)
if(tipo==0)
printf("\n%d",vet_aux[i]);
else
printf("\t%d",vet_aux[i]);
printf("\n");
}
void main()
{
int i,j,num,vet_num[10];
printf("\nDigite os números:\n");
for(i=0;i<10;i++){
scanf("%d",&num);
vet_num[i]=num;
}
for(j=0;j<9;j++){ // varre os (10-1) vetores - o ultimo ele não tem que comparar
for(i=0;i<(9-j);i++){ // depois da primeira passagem o ultimo elemento já é o maior...
if(vet_num[i]>vet_num[i+1]){
num=vet_num[i];
vet_num[i]=vet_num[i+1];
vet_num[i+1]=num;
}
mostra_vet(vet_num,10,1); // mostra tipo=1 horizontal
}
}
mostra_vet(vet_num,10,0); // mostrta tipo=0 verrtical
}
Aula 07/04/15 (Exercícios)
- Aula 12 Link
- Exercício 1
Minha Solução Ex.1 |
---|
- Exercício 2
Minha Solução Ex.2 |
---|
- Exercício 3
Minha Solução Ex.3 |
---|
- Exercício 4
Minha Solução Ex.4 |
---|
Aula 31/03/15
Char em C
- Aula 11 Link
Vetores 26/03/15
- Aula 10 Link
Pseudo Codigo
var
vetor[10]
media,soma,conta,num
inicio
conta=0
soma=0
para variando de 0 ate 10
faca
ler vetor [conta]
incrementa conta
fim para
calcula media
obtenha o num acima da media
calcula media
para conta 0 ate 10
faca
soma = soma + vetor[conta]
fim para
media = soma / (conta + 1)
para conta => 0 ate 9
faca
se o vetor[conta] > media
incrementa numero
fim se
fim para
fim
</syntaxhighlight>
Codigo Programaçao C
#include <stdio.h>
main()
{
int i=0,am=0;
int vet1[10];
float media=0;
for(i=0;i<10;i++) {
printf("Entre com a nota %d => ",i+1);
scanf("%d",&vet1[i]);
media = media+vet1[i];
}
media = media/i;
for( i=0;i<10;i++) {
if (vet1[i]>media)
am++;
}
printf("Media=%0.1f. O número de notas acima da média é %d.\n",media,am);
}
Modificar Para achar menor e menor nos numeros digitados
- Coloquei o valor em uma variavel
//Codigo Jeferson
#include <stdio.h>
main()
{
int i=0,am=1500,maior,menor;
int vet1[10];
for(i=0;i<10;i++) {
printf("Entre com a nota %d => ",i+1);
scanf("%d",&vet1[i]);
//media = media+vet1[i];
}
maior=menor=vet1[0];
for( i=0;i<10;i++) {
if (vet1[i]>maior)
maior = vet1[i];
if (vet1[i]<menor)
menor = vet1[i];
}
printf("Menor=%d. O Maior=%d\n",menor,maior);
}
- Foi mostrado o a posição do maior através do vet1[maior] *Professor*
#include <stdio.h>
main()
{
int i=0,am=1500,maior=0,menor=0;
int vet1[10];
for(i=0;i<10;i++) {
printf("Entre com a nota %d => ",i+1);
scanf("%d",&vet1[i]);
//media = media+vet1[i];
}
for( i=0;i<10;i++) {
if (vet1[i]>vet1[maior])
maior = i;
if (vet1[i]<vet1[menor])
menor = i;
}
printf("Menor=%d. O Maior=%d\n",vet1[menor],vet1[maior]);
}
Declarações do Vetor
- Definindo e usando vetores no C
Colocando em posições ex: int x[10] = {2,4,7,-5,3,2,3,4,9,10};
- Passando vetores em parametro.
int soma (int a, int b)
{
int aux;
aux = a + b;
return aux;
}
void main()
{
soma (1,2);
}
// passando um valor como parametro. EX:
aux[0]=2;
aux[1]=4;
aux[5]=3;
- Passando vetores como parâmetros
Vetores não são copiados na passagem por parâmetro. Eles são passados sempre como referência. Veja o exemplo a seguir:
#include <stdio.h>
void ler_vet(int aux[5])
{
int i;
for (i=0;i<5;i++) {
printf("aux[%d] <== ",i);
scanf("%d",&aux[i]);
}
}
main()
{
int vet[5], i;
ler_vet(vet);
for (i=0;i<5;i++)
printf("vet[%d]=%d\n",i,vet[i]);
}
Exercícios de Análise Aula 12/03/15
Analisar e inferir a saída dos programas abaixo.
(a) Valor de i ao final do programa ____
#include <stdio.h>
main()
{
int i;
for (i=0;i<10;i++) {
if (i==8)
break;
}
printf("Valor de i = %d\n",i);
}
(b) Valor de i e j ao final do programa ____
#include <stdio.h>
main()
{
int i,j;
for (i=0;i<10;i++) {
j=i;
if (j=5)
break;
}
printf("Valor de i = %d j = %d\n",i,j);
}
(c) Valor de i ao final do programa ____
#include <stdio.h>
main()
{
int i;
for (i=0;i<10;i++) {
if (i==5) {
i=11;
continue;
}
}
printf("Valor de i = %d\n", i);
}
(d) Valor de i e j ao final do programa ____
#include <stdio.h>
main()
{
int i,j=2;
for (i=0;i<10 && j==5;i++) {
j++;
}
printf("Valor de i = %d e j %d\n",i,j);
}
(e) Valor de i e j ao final do programa ____
#include <stdio.h>
main()
{
int i,j=2;
for (i=0;i<2;i++) {
j=i;
do {
j++;
} while(j<3);
}
printf("Valor de i = %d e j %d\n",i,j);
}
(f) Valor de k ao final do programa ____
#include <stdio.h>
main()
{
int i,j=2,k=1;
for (i=0;i<2;i++) {
j=j+2;
if (j==4) {
k++;
} else {
if (j==5)
k=k+100;
}
}
printf("Valor de k é %d\n",k);
}
(g) Valor de k ao final do programa ____
#include <stdio.h>
main()
{
int i,j=2,k=10;
for (i=0;i>2;i++) {
j=j+2;
if (j==4 && j<=5) {
k++;
} else {
if (j==5)
k=k+100;
}
}
printf("Valor de k é %d\n",k);
}
(h) Valor de k ao final do programa ____
#include <stdio.h>
main()
{
int i=5,j=2,k=10;
for (i=0;i<3;i++) {
j=0;
while(j<2) {
j++;
if (j==1);
k++;
}
}
printf("Valor de k é %d\n",k);
}
(i) Valor de k ao final do programa ____
#include <stdio.h>
int alfa (int x)
{
if (x<=3)
return -1;
else
return 0;
}
main()
{
int i,k=1;
for (i=0;i<3;i++) {
if (alfa(i)==-1)
k++;
}
printf("Valor de k é %d\n",k);
}
(j) Valor de k ao final do programa ____
#include <stdio.h>
int alfa (int x)
{
if (x==0 || x==2)
return -1;
else
return 0;
}
main()
{
int i,k=1;
for (i=0;i<3;i++) {
if (alfa(i)==-1)
k++;
}
printf("Valor de k é %d\n",k);
}
(k) Valor de k ao final do programa ____
#include <stdio.h>
int beta (int x)
{
if (x==1)
return 1;
else
return 0;
}
int alfa (int x)
{
if (x==0 || x==2)
return -1;
else
return 0;
}
main()
{
int i,k=1;
for (i=0;i<3;i++) {
if (alfa(i)==-1 && beta(i))
k++;
}
printf("Valor de k é %d\n",k);
}
(l) Valor de delta ao final do programa ____
#include <stdio.h>
int delta=10;
int beta (int x)
{
delta++;
if (x==1)
return 1;
else
return 0;
}
int alfa (int x)
{
if (x==0 || x==2)
return -1;
else
return 0;
}
main()
{
int i,k=1;
for (i=0;i<3;i++) {
if (alfa(i)==-1 && beta(i))
k++;
}
printf("Valor de delta é %d\n",delta);
}
(m) Valor de soma ao final do programa ____
#include <stdio.h>
int alfa (int x, int y, int w)
{
if (x==(y+1)) {
w--;
return x*w;
} else {
x++;
return x*y;
}
}
main()
{
int i,soma=0;
for (i=0;i<2;i++) {
soma = soma + alfa(i,i+1,i+2);
}
printf("Valor de soma é %d\n",soma);
}
(n) Valor de delta ao final do programa ____
#include <stdio.h>
main()
{
int i,j,k,soma=0, delta=0;
j=0;
for (i=0;i<2;i++) {
for (;j<2;j++) {
soma = soma + 1;
delta = delta + soma * 2;
}
}
printf("Valor de delta é %d\n",delta);
}
(o) Valor de delta ao final do programa ____
#include <stdio.h>
main()
{
int alfa,beta,gama,delta=0;
alfa = 11;
beta = 5;
gama = 1;
delta = (alfa%2) + (gama>beta) + (beta==5);
printf("Valor de delta é %d\n",delta);
}
(p) Valor de delta ao final do programa ____
#include <stdio.h>
main()
{
int alfa,beta,gama,delta=0;
alfa = 11;
beta = 5;
gama = 1;
delta = (alfa%2) + (beta=5) + (gama>beta);
printf("Valor de delta é %d\n",delta);
}
(q) O valor de delta no programa abaixo é: _______
#include <stdio.h>
int delta=1;
int alfa (int x)
{
delta=5;
return delta
}
main()
{
int i=1;
if (i==1 || alfa()==5)
delta++;
printf("Valor de delta é %d\n",delta);
}
<<
Lista Ex1
>>
Outros