SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Linguagem C Agradecimentos
TÉCNICAS DE PROGRAMAÇÃO I
Prof.John Hebert da Silva Felix
johnfelix@unilab.edu.br
Universidade da Integração Internacional da Lusofonia
Afro-Brasiliera
Curso de Engenharia de Energias
Redenção-CE, Brasil
2014
Prof. John Hebert S. Felix 1/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Índice da Apresentação
1 Linguagem C
Linguagem C
Prof. John Hebert S. Felix 2/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
LINGUAGEM C
Prof. John Hebert S. Felix 3/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Linguagem C
1 Introdução;
2 A Biblioteca-padrão e as Palavras Reservadas em C;
3 Tipos de Dados e Variáveis;
4 Operadores e Expressões;
5 Entrada e Saída E/S pelo Console;
6 Estruturas de Controles;
7 Funções;
8 Arrays e Strings;
9 Ponteiros;
10 Estruturas, Uniões e Enumerações;
11 Arquivos e Streams;
12 Estruturas de dados:
Listas lineares (Filas, Pilhas e Listas Encadeadas);
Ordenação e Pesquisa.
Prof. John Hebert S. Felix 4/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Ponteiros
Chama-se de ponteiro uma variável que contém um endereço de
memória. Em geral, tal endereço corresponde a posição de outra
variável na memória;
Uma variável contém um valor, enquanto o ponteiro faz uma
referência indireta a este valor, apontando para o endereço de
memória desta variável;
Os ponteiros permitem realizar chamada por referência, bem
como criar e manipular estruturas de dados dinâmicas (que
aumentam e diminuem durante a execução), e.g., pilhas e filas.
Prof. John Hebert S. Felix 5/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Ponteiros
Chama-se de ponteiro uma variável que contém um endereço de
memória. Em geral, tal endereço corresponde a posição de outra
variável na memória;
Uma variável contém um valor, enquanto o ponteiro faz uma
referência indireta a este valor, apontando para o endereço de
memória desta variável;
Os ponteiros permitem realizar chamada por referência, bem
como criar e manipular estruturas de dados dinâmicas (que
aumentam e diminuem durante a execução), e.g., pilhas e filas.
Prof. John Hebert S. Felix 5/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Ponteiros
Chama-se de ponteiro uma variável que contém um endereço de
memória. Em geral, tal endereço corresponde a posição de outra
variável na memória;
Uma variável contém um valor, enquanto o ponteiro faz uma
referência indireta a este valor, apontando para o endereço de
memória desta variável;
Os ponteiros permitem realizar chamada por referência, bem
como criar e manipular estruturas de dados dinâmicas (que
aumentam e diminuem durante a execução), e.g., pilhas e filas.
Prof. John Hebert S. Felix 5/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Ponteiros
Chama-se de ponteiro uma variável que contém um endereço de
memória. Em geral, tal endereço corresponde a posição de outra
variável na memória;
Uma variável contém um valor, enquanto o ponteiro faz uma
referência indireta a este valor, apontando para o endereço de
memória desta variável;
Os ponteiros permitem realizar chamada por referência, bem
como criar e manipular estruturas de dados dinâmicas (que
aumentam e diminuem durante a execução), e.g., pilhas e filas.
Prof. John Hebert S. Felix 5/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Sintaxe - declaração de um ponteiro
tipo *nome_do_ponteiro;
Ex.: int *numb;
Ponteiros
Os operadores & e ⇤ são unários. O primeiro operador & retorna o endereço
na memória de seu operando. Este é chamado de operador de endereço. O
segundo operador ⇤ é o complemento de & e retorno o valor da variável
localizada no endereço que o segue. Este é chamado de operador de
indireção.
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Atribuição de ponteiros
#include <stdio.h>
int main (void){
int valor, aux;
int *endereco;
aux = 10;
endereco = &aux;
valor = *endereco;
printf(“O endereço é:%dn”, endereco);
printf(“O valor é:%dn”, valor);
return 0;
}
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Ponteiros em argumentos de funções - Chamada por referência
#include <stdio.h>
int quadrado(int *a); //protótipo de função
int main (void){
int num = 9;
printf(“O quadrado de %dn”, num);
printf(“é: %dn”, quadrado(&num));
return 0;
} //Funções
int quadrado(int *a) {
*a = *a * *a;
}
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Ponteiros - operador sizeof
O operador sizeof retorna o valor em bytes de uma variável.
Ex.:
sizeof(int); //Aplicando sizeof em um tipo de dado
sizeof(vetor); //Aplicando sizeof em uma variável
Ex.: operador sizeof
#include <stdio.h>
int main (void){
float vet1[10];
double vet2[10];
printf(“O número de bytes de vet1 = %d e vet2 = %d.n”, sizeof(vet1),
sizeof(vet2));
return 0;
}
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Expressões e aritmética de ponteiros
Em ponteiros, as expressões utilizam a mesma regra que qualquer outra
expressão em C.
As operações aritméticas em C são: adição e subtração.
Os operadores são incrementados e decrementados de acordo com o tipo de
dado, apontando sempre para o próximo elemento, e.g., supondo que um
caractere pode ser armazenado em um 1 byte e um inteiro em 2 bytes, quando
este são incrementados ou decrementados, aumentam ou diminuem de 1 em 1
para o caractere e de 2 em 2 para o inteiro.
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Expressões e aritmética de ponteiros
Definindo o array vet[6], o seu primeiro elemento está no endereço de memória
1000. Para inicializar o vetor de ponteiros vetPt na primeira posição de vet
pode ser utilizado uma das seguintes formas: vetPt = vet; ou vetPt = &vet[0];
Na Figura a seguir é mostrado este exemplo.
Figura 1 : Variável de ponteiro vetPt que aponta para o array vet.
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Relação entre ponteiros e arrays
Existe uma estreita relação entre arrays e ponteiros. Há duas formas de
acessar elementos de um arrays, a saber: aritmética de ponteiros e indexação
de arrays. A primeira é realizada com mais velocidade, quando comparada
com a segunda.
Ex.: Aritmética de ponteiros e indexação de arrays
//Realiza o acesso de texto com um índice
void mostra(char *texto) {
int tx;
for(tx = 0; texto[tx]; ++tx) putchar(texto[tx]);
}
//Realiza o acesso de texto como um ponteiro
void mostra(char *texto) {
while(*texto) putchar(*texto++);
}
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Arrays de ponteiros
Existe uma estreita relação entre arrays e ponteiros. Há duas formas de
acessar os elementos de um arrays, a saber: aritmética de ponteiros e
indexação de arrays. A primeira é realizada com mais velocidade, quando
comparada com a segunda.
Sintaxe - declaração de um arrays de ponteiro
tipo *nome_do_ponteiro[tamanho];
Ex.: int *vt[10];
vt[3]= &vr; //atribui o endereço de vr (do tipo int) no 4o
elemento de vt.
*vt[3] //apresenta o valor que estar em tal endereço.
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Ponteiros
Alocação dinâmica
Permite que o programa obtenha memória durante a sua execução. As
funções utilizadas são: malloc() (aloca a memória) e free() (a libera). Para
utilizar estas funções deve ser incluido o cabeçalho stdlib.h.
Sintaxe - malloc() e free()
void malloc(size_t número_de_bytes);
Em que: size_t é definido pelo cabeçalho stdlib.h e número_de_bytes é o número de bytes de
memória que deseja alocar.
void free(void *p);
Em que: p corresponde a um ponteiro para memória alocado antes por malloc().
Ex.:
int *vr;
vr = malloc(50*sizeof(int)) //sizeof assegura a portabilidade para outros S.O.
free(vr);
Prof. John Hebert S. Felix 6/7 UNILAB
Técnicas de Programação I

Mais conteúdo relacionado

Mais procurados

Mais procurados (11)

Aula4
Aula4Aula4
Aula4
 
Hierarquia de Chomsky
Hierarquia de ChomskyHierarquia de Chomsky
Hierarquia de Chomsky
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
 
02 1 algoritmos
02 1 algoritmos02 1 algoritmos
02 1 algoritmos
 
Apostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em CApostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em C
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
 
Prova 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e ComputabilidadeProva 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e Computabilidade
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1
 
Aula 3 linguagens e gramaticas
Aula 3   linguagens e gramaticasAula 3   linguagens e gramaticas
Aula 3 linguagens e gramaticas
 
Formal Languages ​​and Automata
Formal Languages ​​and AutomataFormal Languages ​​and Automata
Formal Languages ​​and Automata
 
Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memória
 

Destaque

Tecnicas programacao i_c_p2
Tecnicas programacao i_c_p2Tecnicas programacao i_c_p2
Tecnicas programacao i_c_p2D M
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1D M
 
Solucionario química a ciência central - brown 9ª ed - blog - aquelaquestao...
Solucionario química   a ciência central - brown 9ª ed - blog - aquelaquestao...Solucionario química   a ciência central - brown 9ª ed - blog - aquelaquestao...
Solucionario química a ciência central - brown 9ª ed - blog - aquelaquestao...Adriana Barbosa
 
Livro do fisiculturismo
Livro do fisiculturismoLivro do fisiculturismo
Livro do fisiculturismoMatheus Dutra
 
Mi tyrabajo de química
Mi tyrabajo de químicaMi tyrabajo de química
Mi tyrabajo de químicaErica Urizar
 
Virus y vacunas informaticas
Virus y vacunas informaticasVirus y vacunas informaticas
Virus y vacunas informaticasyesi-agudelo
 
Anastomosis de la pórta cava
Anastomosis de la pórta cavaAnastomosis de la pórta cava
Anastomosis de la pórta cavaPamela Espinales
 
3월 금융.경제이슈
3월 금융.경제이슈3월 금융.경제이슈
3월 금융.경제이슈Yeojin Choi
 
MATERIALES COMPUESTOS PARA LA COSTRUCCION
MATERIALES COMPUESTOS PARA LA COSTRUCCIONMATERIALES COMPUESTOS PARA LA COSTRUCCION
MATERIALES COMPUESTOS PARA LA COSTRUCCIONNicollTorresN
 
La buena suerte
La buena suerte La buena suerte
La buena suerte patrisp1
 
06 2013 nd-cp_164307
06 2013 nd-cp_16430706 2013 nd-cp_164307
06 2013 nd-cp_164307suuvuclc
 
Genital herpes : Symptoms, causes diagnosis and treatment
Genital herpes : Symptoms, causes diagnosis and treatmentGenital herpes : Symptoms, causes diagnosis and treatment
Genital herpes : Symptoms, causes diagnosis and treatmentLazoi Lifecare Private Limited
 
Evidencia1 bimestre
Evidencia1 bimestreEvidencia1 bimestre
Evidencia1 bimestreferxim300702
 
introduccion a la robotica
introduccion a la robotica introduccion a la robotica
introduccion a la robotica jnn3j32k
 

Destaque (20)

Tecnicas programacao i_c_p2
Tecnicas programacao i_c_p2Tecnicas programacao i_c_p2
Tecnicas programacao i_c_p2
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1
 
Solucionario química a ciência central - brown 9ª ed - blog - aquelaquestao...
Solucionario química   a ciência central - brown 9ª ed - blog - aquelaquestao...Solucionario química   a ciência central - brown 9ª ed - blog - aquelaquestao...
Solucionario química a ciência central - brown 9ª ed - blog - aquelaquestao...
 
Livro do fisiculturismo
Livro do fisiculturismoLivro do fisiculturismo
Livro do fisiculturismo
 
Mi tyrabajo de química
Mi tyrabajo de químicaMi tyrabajo de química
Mi tyrabajo de química
 
Sanctity of Marriage
Sanctity of MarriageSanctity of Marriage
Sanctity of Marriage
 
Virus y vacunas informaticas
Virus y vacunas informaticasVirus y vacunas informaticas
Virus y vacunas informaticas
 
Anastomosis de la pórta cava
Anastomosis de la pórta cavaAnastomosis de la pórta cava
Anastomosis de la pórta cava
 
3월 금융.경제이슈
3월 금융.경제이슈3월 금융.경제이슈
3월 금융.경제이슈
 
Virus informaticos
Virus informaticosVirus informaticos
Virus informaticos
 
MATERIALES COMPUESTOS PARA LA COSTRUCCION
MATERIALES COMPUESTOS PARA LA COSTRUCCIONMATERIALES COMPUESTOS PARA LA COSTRUCCION
MATERIALES COMPUESTOS PARA LA COSTRUCCION
 
La buena suerte
La buena suerte La buena suerte
La buena suerte
 
06 2013 nd-cp_164307
06 2013 nd-cp_16430706 2013 nd-cp_164307
06 2013 nd-cp_164307
 
Genital herpes : Symptoms, causes diagnosis and treatment
Genital herpes : Symptoms, causes diagnosis and treatmentGenital herpes : Symptoms, causes diagnosis and treatment
Genital herpes : Symptoms, causes diagnosis and treatment
 
Practica 7-cancer
Practica 7-cancerPractica 7-cancer
Practica 7-cancer
 
Sexting
SextingSexting
Sexting
 
Expresion escrita
Expresion escritaExpresion escrita
Expresion escrita
 
Evidencia1 bimestre
Evidencia1 bimestreEvidencia1 bimestre
Evidencia1 bimestre
 
introduccion a la robotica
introduccion a la robotica introduccion a la robotica
introduccion a la robotica
 
Imam malik bin ans
Imam malik bin ansImam malik bin ans
Imam malik bin ans
 

Semelhante a Tecnicas programacao i_c_p4

Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Aprendendo PHP.pdf
Aprendendo PHP.pdfAprendendo PHP.pdf
Aprendendo PHP.pdfssuserad6350
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Mauricio Volkweis Astiazara
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++Jonas Silva
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERLTiago R. Sampaio
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresRegis Magalhães
 
Curso completo php
Curso completo phpCurso completo php
Curso completo phpbreninho94
 
Automacao com Python.pdf
Automacao com Python.pdfAutomacao com Python.pdf
Automacao com Python.pdfSecont
 

Semelhante a Tecnicas programacao i_c_p4 (20)

Pged 01
Pged 01Pged 01
Pged 01
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Aprendendo PHP.pdf
Aprendendo PHP.pdfAprendendo PHP.pdf
Aprendendo PHP.pdf
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Ed1
Ed1Ed1
Ed1
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERL
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
C 1
C 1C 1
C 1
 
Linguagem_C.pdf
Linguagem_C.pdfLinguagem_C.pdf
Linguagem_C.pdf
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
 
Curso completo php
Curso completo phpCurso completo php
Curso completo php
 
Automacao com Python.pdf
Automacao com Python.pdfAutomacao com Python.pdf
Automacao com Python.pdf
 

Último

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 

Último (7)

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 

Tecnicas programacao i_c_p4

  • 1. Linguagem C Agradecimentos TÉCNICAS DE PROGRAMAÇÃO I Prof.John Hebert da Silva Felix johnfelix@unilab.edu.br Universidade da Integração Internacional da Lusofonia Afro-Brasiliera Curso de Engenharia de Energias Redenção-CE, Brasil 2014 Prof. John Hebert S. Felix 1/7 UNILAB Técnicas de Programação I
  • 2. Linguagem C Agradecimentos Índice da Apresentação 1 Linguagem C Linguagem C Prof. John Hebert S. Felix 2/7 UNILAB Técnicas de Programação I
  • 3. Linguagem C Agradecimentos LINGUAGEM C Prof. John Hebert S. Felix 3/7 UNILAB Técnicas de Programação I
  • 4. Linguagem C Agradecimentos Linguagem C 1 Introdução; 2 A Biblioteca-padrão e as Palavras Reservadas em C; 3 Tipos de Dados e Variáveis; 4 Operadores e Expressões; 5 Entrada e Saída E/S pelo Console; 6 Estruturas de Controles; 7 Funções; 8 Arrays e Strings; 9 Ponteiros; 10 Estruturas, Uniões e Enumerações; 11 Arquivos e Streams; 12 Estruturas de dados: Listas lineares (Filas, Pilhas e Listas Encadeadas); Ordenação e Pesquisa. Prof. John Hebert S. Felix 4/7 UNILAB Técnicas de Programação I
  • 5. Linguagem C Agradecimentos Ponteiros Ponteiros Chama-se de ponteiro uma variável que contém um endereço de memória. Em geral, tal endereço corresponde a posição de outra variável na memória; Uma variável contém um valor, enquanto o ponteiro faz uma referência indireta a este valor, apontando para o endereço de memória desta variável; Os ponteiros permitem realizar chamada por referência, bem como criar e manipular estruturas de dados dinâmicas (que aumentam e diminuem durante a execução), e.g., pilhas e filas. Prof. John Hebert S. Felix 5/7 UNILAB Técnicas de Programação I
  • 6. Linguagem C Agradecimentos Ponteiros Ponteiros Chama-se de ponteiro uma variável que contém um endereço de memória. Em geral, tal endereço corresponde a posição de outra variável na memória; Uma variável contém um valor, enquanto o ponteiro faz uma referência indireta a este valor, apontando para o endereço de memória desta variável; Os ponteiros permitem realizar chamada por referência, bem como criar e manipular estruturas de dados dinâmicas (que aumentam e diminuem durante a execução), e.g., pilhas e filas. Prof. John Hebert S. Felix 5/7 UNILAB Técnicas de Programação I
  • 7. Linguagem C Agradecimentos Ponteiros Ponteiros Chama-se de ponteiro uma variável que contém um endereço de memória. Em geral, tal endereço corresponde a posição de outra variável na memória; Uma variável contém um valor, enquanto o ponteiro faz uma referência indireta a este valor, apontando para o endereço de memória desta variável; Os ponteiros permitem realizar chamada por referência, bem como criar e manipular estruturas de dados dinâmicas (que aumentam e diminuem durante a execução), e.g., pilhas e filas. Prof. John Hebert S. Felix 5/7 UNILAB Técnicas de Programação I
  • 8. Linguagem C Agradecimentos Ponteiros Ponteiros Chama-se de ponteiro uma variável que contém um endereço de memória. Em geral, tal endereço corresponde a posição de outra variável na memória; Uma variável contém um valor, enquanto o ponteiro faz uma referência indireta a este valor, apontando para o endereço de memória desta variável; Os ponteiros permitem realizar chamada por referência, bem como criar e manipular estruturas de dados dinâmicas (que aumentam e diminuem durante a execução), e.g., pilhas e filas. Prof. John Hebert S. Felix 5/7 UNILAB Técnicas de Programação I
  • 9. Linguagem C Agradecimentos Ponteiros Sintaxe - declaração de um ponteiro tipo *nome_do_ponteiro; Ex.: int *numb; Ponteiros Os operadores & e ⇤ são unários. O primeiro operador & retorna o endereço na memória de seu operando. Este é chamado de operador de endereço. O segundo operador ⇤ é o complemento de & e retorno o valor da variável localizada no endereço que o segue. Este é chamado de operador de indireção. Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 10. Linguagem C Agradecimentos Ponteiros Atribuição de ponteiros #include <stdio.h> int main (void){ int valor, aux; int *endereco; aux = 10; endereco = &aux; valor = *endereco; printf(“O endereço é:%dn”, endereco); printf(“O valor é:%dn”, valor); return 0; } Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 11. Linguagem C Agradecimentos Ponteiros Ponteiros em argumentos de funções - Chamada por referência #include <stdio.h> int quadrado(int *a); //protótipo de função int main (void){ int num = 9; printf(“O quadrado de %dn”, num); printf(“é: %dn”, quadrado(&num)); return 0; } //Funções int quadrado(int *a) { *a = *a * *a; } Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 12. Linguagem C Agradecimentos Ponteiros Ponteiros - operador sizeof O operador sizeof retorna o valor em bytes de uma variável. Ex.: sizeof(int); //Aplicando sizeof em um tipo de dado sizeof(vetor); //Aplicando sizeof em uma variável Ex.: operador sizeof #include <stdio.h> int main (void){ float vet1[10]; double vet2[10]; printf(“O número de bytes de vet1 = %d e vet2 = %d.n”, sizeof(vet1), sizeof(vet2)); return 0; } Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 13. Linguagem C Agradecimentos Ponteiros Expressões e aritmética de ponteiros Em ponteiros, as expressões utilizam a mesma regra que qualquer outra expressão em C. As operações aritméticas em C são: adição e subtração. Os operadores são incrementados e decrementados de acordo com o tipo de dado, apontando sempre para o próximo elemento, e.g., supondo que um caractere pode ser armazenado em um 1 byte e um inteiro em 2 bytes, quando este são incrementados ou decrementados, aumentam ou diminuem de 1 em 1 para o caractere e de 2 em 2 para o inteiro. Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 14. Linguagem C Agradecimentos Ponteiros Expressões e aritmética de ponteiros Definindo o array vet[6], o seu primeiro elemento está no endereço de memória 1000. Para inicializar o vetor de ponteiros vetPt na primeira posição de vet pode ser utilizado uma das seguintes formas: vetPt = vet; ou vetPt = &vet[0]; Na Figura a seguir é mostrado este exemplo. Figura 1 : Variável de ponteiro vetPt que aponta para o array vet. Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 15. Linguagem C Agradecimentos Ponteiros Relação entre ponteiros e arrays Existe uma estreita relação entre arrays e ponteiros. Há duas formas de acessar elementos de um arrays, a saber: aritmética de ponteiros e indexação de arrays. A primeira é realizada com mais velocidade, quando comparada com a segunda. Ex.: Aritmética de ponteiros e indexação de arrays //Realiza o acesso de texto com um índice void mostra(char *texto) { int tx; for(tx = 0; texto[tx]; ++tx) putchar(texto[tx]); } //Realiza o acesso de texto como um ponteiro void mostra(char *texto) { while(*texto) putchar(*texto++); } Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 16. Linguagem C Agradecimentos Ponteiros Arrays de ponteiros Existe uma estreita relação entre arrays e ponteiros. Há duas formas de acessar os elementos de um arrays, a saber: aritmética de ponteiros e indexação de arrays. A primeira é realizada com mais velocidade, quando comparada com a segunda. Sintaxe - declaração de um arrays de ponteiro tipo *nome_do_ponteiro[tamanho]; Ex.: int *vt[10]; vt[3]= &vr; //atribui o endereço de vr (do tipo int) no 4o elemento de vt. *vt[3] //apresenta o valor que estar em tal endereço. Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I
  • 17. Linguagem C Agradecimentos Ponteiros Alocação dinâmica Permite que o programa obtenha memória durante a sua execução. As funções utilizadas são: malloc() (aloca a memória) e free() (a libera). Para utilizar estas funções deve ser incluido o cabeçalho stdlib.h. Sintaxe - malloc() e free() void malloc(size_t número_de_bytes); Em que: size_t é definido pelo cabeçalho stdlib.h e número_de_bytes é o número de bytes de memória que deseja alocar. void free(void *p); Em que: p corresponde a um ponteiro para memória alocado antes por malloc(). Ex.: int *vr; vr = malloc(50*sizeof(int)) //sizeof assegura a portabilidade para outros S.O. free(vr); Prof. John Hebert S. Felix 6/7 UNILAB Técnicas de Programação I