Mudanças entre as edições de "Jeferson Ricardo Tichz"
Linha 66: | Linha 66: | ||
} | } | ||
+ | </syntaxhighlight> | ||
+ | *exercicio | ||
+ | <syntaxhighlight lang=c> | ||
+ | #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 | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Edição das 17h07min de 19 de maio de 2015
Pagina Jeferson Ricardo Tichz ( Engenharia 14.2)
PRG
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
}
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