O documento apresenta uma introdução à linguagem C ministrada pelo professor John Hebert da Silva Felix para os alunos de engenharia da Universidade da Integração Internacional da Lusofonia Afro-Brasiliera. O curso aborda tópicos como tipos de dados, variáveis, operadores, estruturas de controle, funções, arrays, strings e ponteiros em C.
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
Tecnicas programacao i_c_p3
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/9 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/9 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/9 UNILAB
Técnicas de Programação I
5. Linguagem C Agradecimentos
Funções
Funções
A programação estruturada em C é obtida com funções, que
permitem dividir os programa em partes menores;
As funções são módulos que combinados formam o programa.
Este pode utilizar funções da biblioteca-padrão ou outras funções
definidas pelo programador; e
As funções podem ser (re)utilizadas várias vezes em um mesmo
programa ou em outros programas diferentes.
Prof. John Hebert S. Felix 5/9 UNILAB
Técnicas de Programação I
6. Linguagem C Agradecimentos
Funções
Funções
A programação estruturada em C é obtida com funções, que
permitem dividir os programa em partes menores;
As funções são módulos que combinados formam o programa.
Este pode utilizar funções da biblioteca-padrão ou outras funções
definidas pelo programador; e
As funções podem ser (re)utilizadas várias vezes em um mesmo
programa ou em outros programas diferentes.
Prof. John Hebert S. Felix 5/9 UNILAB
Técnicas de Programação I
7. Linguagem C Agradecimentos
Funções
Funções
A programação estruturada em C é obtida com funções, que
permitem dividir os programa em partes menores;
As funções são módulos que combinados formam o programa.
Este pode utilizar funções da biblioteca-padrão ou outras funções
definidas pelo programador; e
As funções podem ser (re)utilizadas várias vezes em um mesmo
programa ou em outros programas diferentes.
Prof. John Hebert S. Felix 5/9 UNILAB
Técnicas de Programação I
8. Linguagem C Agradecimentos
Funções
Funções
A programação estruturada em C é obtida com funções, que
permitem dividir os programa em partes menores;
As funções são módulos que combinados formam o programa.
Este pode utilizar funções da biblioteca-padrão ou outras funções
definidas pelo programador; e
As funções podem ser (re)utilizadas várias vezes em um mesmo
programa ou em outros programas diferentes.
Prof. John Hebert S. Felix 5/9 UNILAB
Técnicas de Programação I
9. Linguagem C Agradecimentos
Funções
Sintaxe - função
especificador_de_tipo nome_da_função(lista_de_parâmetros)
{
Corpo da função;
}
Em que:
especificador_de_tipo: estabece o tipo de valor que o comando return da
função retorna;
nome_da_função: pode ser representado por algum identificador válido;
lista_de_parâmetros: lista com tipos de dados e de nomes de variáveis
separados por vírgula. Ex.: especificador_de_tipo nome_da_função(tipo
var1, tipo var2,...tipo varn)
Prof. John Hebert S. Felix 6/9 UNILAB
Técnicas de Programação I
10. Linguagem C Agradecimentos
Funções
Protótipo de função, Chamada por valor e Chamada por referência
O protótipo de função permite que as funções sejam validadas pelo
compilador que verifica toda a sua forma, tipos de dados de retorno da
função, o número e o tipo de parâmetros e a sua sequência de
ocorrência;
O protótipo de função deve ser declarado antes da função main do
programa; e
A chamada por valor consiste em passar uma cópia do valor do
argumento para a função chamada. Isto significa, que as alterações
realizadas na cópia não modifica o valor original da variável utilizada
para chamá-la;
A chamada por referência consiste em passar uma cópia do edereço
do argumento para a função chamada. Este edereço é utilizado para
modificar o valor original da variável chamada, i.e, a função chamada
pode alterar o valor da da variável original.
Prof. John Hebert S. Felix 6/9 UNILAB
Técnicas de Programação I
11. Linguagem C Agradecimentos
Funções
Protótipo de função, Chamada por valor e Chamada por referência
#include <stdio.h>
int quadrado(int a); //protótipo de função
int troca(int *a, int *b); //protótipo de função
int main (void){
int numa = 5, numb = 9;
printf(“O quadrado é: %dn”, quadrado(numa));
troca(&numa, &numb);
printf(“Trocando os valores de A e B:%d %dn”, numa, numb);
return 0;
} //Funções
int quadrado(int a) {
a = a*a;
return a; //uso do comando para retornar um valor
}
int troca(int *a, int *b) {
int aux;
aux = *a;
*a = *b;
*b = aux;
}
Prof. John Hebert S. Felix 6/9 UNILAB
Técnicas de Programação I
12. Linguagem C Agradecimentos
Funções
Recursão
Processo que consiste em definir algo em termos de si mesmo. Uma função é
recursiva quando algum comando dentro do seu corpo realiza a sua chamada.
Ex.: Função Recursiva
#include <stdio.h>
int fat(int a);
int fat_rec(int a);
int main (void){
int num;
printf(“Digite o número para calcular o fatorial: %dn”);
scanf (“%d”,&num);
printf(“O fatorial da função fat é:%d2dn”, fat(num));
printf(“O fatorial da função fat_rec é:%d2dn”, fat_rec(num));
return 0;
} //Funções
int fat_rec(int a)
{
if(a <= 1) return 1;
else return (a * fat_rec(a – 1));
}
Ex.: Função normal
int fat(int a)
{
int cont, ft = 1;
if(a <= 1) return 1;
else
{
for(cont = 1; cont <= a; cont++)
{
ft *= cont;
}
return ft;
}
}
Prof. John Hebert S. Felix 6/9 UNILAB
Técnicas de Programação I
13. Linguagem C Agradecimentos
Arrays e Strings
Arrays e Strings
Arrays - corresponde a conjunto ou coleção de variáveis do
mesmo tipo e nome. Os arrays podem ser: unidimensionais
(vetores) e multidimensionais (tabelas); e
String - definida como um array de caracteres terminada por um
nulo (0).
Prof. John Hebert S. Felix 7/9 UNILAB
Técnicas de Programação I
14. Linguagem C Agradecimentos
Arrays e Strings
Arrays e Strings
Arrays - corresponde a conjunto ou coleção de variáveis do
mesmo tipo e nome. Os arrays podem ser: unidimensionais
(vetores) e multidimensionais (tabelas); e
String - definida como um array de caracteres terminada por um
nulo (0).
Prof. John Hebert S. Felix 7/9 UNILAB
Técnicas de Programação I
15. Linguagem C Agradecimentos
Arrays e Strings
Arrays e Strings
Arrays - corresponde a conjunto ou coleção de variáveis do
mesmo tipo e nome. Os arrays podem ser: unidimensionais
(vetores) e multidimensionais (tabelas); e
String - definida como um array de caracteres terminada por um
nulo (0).
Prof. John Hebert S. Felix 7/9 UNILAB
Técnicas de Programação I
16. Linguagem C Agradecimentos
Arrays e Strings
Arrays - unidimensionais
Refere-se a um conjunto de variáveis de mesmo tipo e nome, que são alocadas
na memória de forma sequencial. Também são chamadas de vetores.
Sintaxe - declaração de um vetor
tipo nome_do_array[tamanho];
Ex.: float vetor[10];
Atribuição de valores
O acesso a um determinado elemento de um vetor é obtido por meio de seu índice, que corresponde a sua
posição.
Em C, o primeiro índice começa em zero (0), ou seja, o vetor[10] vai de vetor[0] até vetor[9]. Ex.:
vetor[1] = 35;
vetor[2] = 23;
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I
17. Linguagem C Agradecimentos
Arrays e Strings
Operações com vetores
Os arrays permitem que os elementos alocados em suas posições sejam manipulados
de forma independentes. A inclusão e a substituição de valores correponde a uma
mesma operação, i.e, na inclusão de um valor novo, o valor atual é substituido.
Ex.: Somando dois vetores
#include <stdio.h>
#define TAM 10
int main (void){
int i, veta[TAM], vetb[TAM], vetres[TAM];
for(i = 0;i < TAM; i++){
printf(“Digite os números inteiros para cada vetorn”);
scanf(“%d%d”,&veta[i], &vetb[i]);
vetres[i] = veta[i] + vetb[i];
printf(“A soma dos vetores é: %dn”, vetres[i]);
}
return 0;
}
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I
18. Linguagem C Agradecimentos
Arrays e Strings
Arrays - multidimensionais
Diferente dos vetores, as variáveis multidimensionais (tabelas ou
matrizes), precisam de um índice para cada dimensão, e.g., uma
tabela tem dois índice.
Sintaxe - declaração de uma tabela
tipo nome_da_tabela[tamanho1][tamanho2]; Ex.: float tabela[3][3];
Atribuição de valores
O acesso a um determinado elemento de uma tabela é obtido por meio de seus
índices, e.g., em uma tabela ou matriz bidimensional se utliza dois índices, em que
um represeta a linha e o outro a coluna.
Ex.:
tabela[1][1] = 15;
tabela[2][1] = 31;
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I
19. Linguagem C Agradecimentos
Arrays e Strings
Operação de soma com duas matrizes
#include <stdio.h>
#define LIN 3
#define COL 3
int main (void){
int i, j, taba[LIN][COL], tabb[LIN][COL], tabres[LIN][COL];
for(i = 0; i < LIN; i++){
for(j = 0; j < COL; j++){
printf(“Digite os números inteiros para cada tabelan”);
scanf(“%d%d”,&taba[i][j], &tabb[i][j]);
tabres[i][j] = taba[i][j] + tabb[i][j];
}
}
for(i = 0;i < LIN; i++)
for(j = 0;j < COL; j++)
printf(“A soma das tabelas é: %2d %2d %2dn”,i,j, tabres[i][j]);
return 0;
}
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I
20. Linguagem C Agradecimentos
Arrays e Strings
Strings
Em C, não há o tipo de dado string. Esta é definida como array
unidimensional do tipo caractere “char”.
Sintaxe - declaração de uma String
char nome_da_String[tamanho];
Ex.: char nome[30], endereco[20];
Atribuição de valores
O acesso a um determinado elemento de uma string é obtido por meio de seu
índices.
Ex.:
char nome[] = ‘L’,‘u’,‘c’,‘i’,‘a’;
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I
21. Linguagem C Agradecimentos
Arrays e Strings
String - Obs.:
scanf(“%s”,nome);
Na passagem de dados para a cadeia de caractere o operadro & não pode ser
utilizado, devido a variável nome ser uma string;
O especificar de tipo %s tem seu uso limitado, pois somente realiza a leitura
de uma sequência de caracteres não brancos;
O especificador %[...] permite capturar uma sequência de caracteres não
brancos. Para isto, utiliza-se a seguinte confirguração %30[ ˆ n] s.
Em que:
30 correponde ao tamanho máximo de caracteres que podem ser lidos;
ˆ aplica o efeito inverso (negação);
n
O comando gets() pode ser utilizado para fazer a leitura de variáveis do tipo
string. Porém, este comando não consegue verificar se a quantidade de
carateres digitados excede o tamanho da string;
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I
22. Linguagem C Agradecimentos
Arrays e Strings
E.: String - lendo e mostrando um texto
#include <stdio.h>
#include <string.h>
#define TAM 10
int main (void){
char texto[TAM];
puts(“Digite o texto: n”);
gets(texto);
printf(“O texto digitado é: %sn”, texto);
return 0;
}
Prof. John Hebert S. Felix 8/9 UNILAB
Técnicas de Programação I