Linguagem de Programação C++

Linguagem de Programação C++

(Parte 1 de 7)

Centro Universitário de Maringá - CESUMAR

Cursos de AUTOMAÇÃO INDUSTRIAL e ENGENHARIA DE CONTROLE E AUTOMAÇÃO

Disciplina de Informática para Automação Prof. E. Carlos Henrique Z. Pantaleão

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

1 Programação em C5
2 Conceitos Básicos da Programação C7
2.1 Histórico de C7
2.2 Criando um Programa Executável8
2.3 A Estrutura Básica de um Programa em C9
2.4 Variáveis1
2.5 Tipos de Dados12
2.6 Constantes14
2.7 Ponteiros16
2.8 Exercícios18
3 Entrada/Saída Console19
3.1 Printf()……19
3.2 Cprintf()…………………………………23
3.3 Scanf()…............……..............................................................23
3.4 Getch(), Getche() e Getchar()……24
3.5 Putch() ou Putchar()25
3.6 Exercícios25
4 Operadores27
4.1 Operadores Aritméticos27
4.2 Operadores Relacionais28
4.3 Operadores lógicos binários29
4.4 Operadores de Ponteiros30
4.5 Operadores Incrementais e Decrementais31
4.6 Operadores de Atribuição3
4.7 O Operador Lógico Ternário34
4.8 Precedência35
4.9 Exercícios35
5 Laços37
5.1 O Laço For37
5.2 O Laço While39
5.3 O Laço Do-While40
5.4 Break e Continue……...............................................41
5.5 Goto42

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

6 Comandos para Tomada de Decisão4
6.1 If……………............................................................................4
6.2 If-Else..……45
6.3 Switch……46
6.4 Exercícios……..................................................................................................49
7 Funções50
7.1 Sintaxe50
7.2 Exemplos51
7.3 Prototipagem54
7.4 Classes de Armazenamento5
7.4.1 Auto.…………....................................................................................5
7.4.2 Extern……….............................................................5
7.4.3 Static56
7.4.4 Variáveis Estáticas Externas57
7.4.5 Register58
7.5 Exercícios58
8 Diretivas do Pré-Processador60
8.1 Diretiva #define60
8.2 Macros61
8.3 Diretiva #undef63
8.4 Diretiva #include63
8.5 Compilação Condicional65
8.6 Operador defined6
8.7 Diretiva #error6
8.8 Diretiva #pragma67
8.9 Exercícios67
9 Matrizes68
9.1 Sintaxe de Matrizes69
9.2 Inicializando Matrizes70
9.3 Matrizes como Argumentos de Funções73
9.4 Chamada Por Valor e Chamada Por Referência75
9.5 Strings……..................................................78
9.5.1 Strings Constantes…......................................................79
9.5.2 String Variáveis79
9.5.3 Funções para Manipulação de Strings81

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

10 Tipos Especiais de Dados84
10.1 Typedef84
10.2 Enumerados (Enum)84
10.3 Estruturas (Struct)86
10.4 Uniões91
10.5 Bitfields93
10.6 Exercícios94
1 Ponteiros e a Alocação Dinâmica de Memória95
1.1 Declaração de Ponteiros e o Acesso de Dados com Ponteiros95
1.2 Operações com Ponteiros96
1.3 Funções & Ponteiros9
1.4 Ponteiros & Matrizes101
1.5 Ponteiros & Strings103
1.6 Ponteiros para Ponteiros105
1.7 Argumentos da Linha de Comando109
1.8 Ponteiros para Estruturas10
1.9 Alocação Dinâmica de Memória12
1.9.1 Malloc()………........................................................................14
1.9.2 Calloc()………............................................................15
1.9.3 Free()16
1.10 Exercícios16
12 Manipulação de Arquivos em C118
12.1 Tipos de Arquivos118
12.2 Declaração, abertura e fechamento118
12.3 Leitura e escrita de caracteres120
12.4 Fim de Arquivo (EOF)120
12.5 Leitura e escrita de strings121
12.6 Arquivos Padrões122
12.7 Gravando um Arquivo de Forma Formatada123
12.8 Leitura e escrita de valores binários124

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

1 Programação em C

processos industriaisOs sistemas computacionais empregados variam desde um simples circuito
sistemas complexos envolvendo um ou mais microcomputadores ou até estações de trabalhoUm
selecionar o melhor equipamento para uma dada aplicaçãoAlém disto, este profissional deve
comportamento determinístico com restrições temporais (sistemas tempo-real)Neste contexto, a
programação destes sistemas se faz de suma importânciaBasicamente, a inteligência dos sistemas

Atualmente, empregam-se cada vez mais sistemas computacionais na automatização de lógico digital, passando por uma circuito composto por um microprocessador ou um CLP, até engenheiro que atua nesta área deve conhecer os sistemas computacionais disponíveis e ser capaz de conseguir instalar este sistema, configurá-lo e acima de tudo programá-lo para que este execute a tarefa de automatização atendendo os requisitos industrias do sistema, como imunidade a falhas ou automatizados é implementada através de programas computacionais, comandando os componentes de hardware para executar a tarefa com o comportamento desejado.

Figura 1 - Comparação entre os diversos sistemas computacionais para aplicações industriais.

processos industrias sejam automatizados e interligados através de sistemas computacionais

Nas últimas décadas, o desenvolvimento em hardware permitiu que cada vez mais os Entretanto, a evolução em software não se deu em tamanha velocidade como a de hardware. Desta

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação forma, um dos grandes paradigmas tecnológicos hoje é o desenvolvimento de programas para a realização de tarefas complexas e que exigem um alto grau de inteligência.

o computador entende chama-se linguagem de máquinaPortanto todos os programas que se

A maneira de se comunicar com um computador chama-se programa e a única linguagem que comunicam com a máquina devem estar em linguagem de máquina.

humana (linguagens de "alto nível") em linguagem de máquinaA forma como os programas são

Para permitir uma maior flexibilidade e portabilidade no desenvolvimento de software, foram implementados nos anos 50 os primeiros programas para a tradução de linguagens semelhantes à traduzidos para a linguagem de máquina classifica-se em duas categorias:

finalmente executá-laSegue, então, para a próxima instrução, repetindo o processo até que a
última instrução seja executada ou a consistência aponte algum erroSão muito bons para a função
de depuração ("debugging") de programas, mas são mais lentosEx.: BASIC Interpretado, Java.

• Interpretadores: Um interpretador lê a primeira instrução do programa, faz uma consistência de sua sintaxe e, se não houver erro converte-a para a linguagem de máquina para

serem executadosSe não houver erros, o compilador gera um programa em disco com o sufixo
.OBJ com as instruções já traduzidasEste programa não pode ser executado até que sejam
agregadas a ele rotinas em linguagem de máquina que lhe permitirão a sua execuçãoEste trabalho

• Compiladores: Traduzem o programa inteiro em linguagem de máquina antes de é feito por um programa chamado “linkeditor” que, além de juntar as rotinas necessárias ao programa .OBJ, cria um produto final em disco com sufixo .EXE que pode ser executado diretamente do sistema operacional.

aquele gerado por um programador que trabalhe direto em AssemblyOferecem em geral menos
vezes ou mais)Ex.: BASIC Compilado, FORTRAN, PASCAL, MÓDULA - 2, C, C++. Além da

Compiladores bem otimizados produzem código de máquina quase tão eficiente quanto facilidades de depuração que interpretadores, mas os programas são mais rápidos (na ordem de 100 velocidade, outras vantagens podem ser mencionadas: • é desnecessária a presença do interpretador ou do compilador para executar o programa já compilado e linkeditado; • programas .EXE não podem ser alterados, o que protege o código-fonte.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

Desta forma, os compiladores requerem o uso adicional de um editor de ligações ("Linker"), que combina módulos-objetos ("Traduzidos") separados entre si e converte os módulos assim "linkados" no formato carregável pelo sistema operacional (programa .EXE).

2 Conceitos Básicos da Programação C

O compilador "C" vem se tornando o mais difundido em ambiente industrialA linguagem
"C" se originou das linguagens BCPL e B desenvolvidas em 1970A primeira versão de "C" foi
Equipment Corporation)A linguagem “C” foi utilizada para portar o UNIX para outros
computadoresA linguagem "C" possui uma característica dual:

2.1 Histórico de C implementada para o sistema operacional UNIX pela Bell Laboratories, especificamente por Dennis M. Ritchie e Ken Thompson no início da década de 70, e rodava em um DEC PDP11 (Digital • É considerada linguagem estruturada de alto-nível;

• Assembly de alto-nível, que permite escrever programas muito próximos à linguagem de máquina, sendo usada para desenvolver muitas aplicações como compiladores, interpretadores, processadores de texto e mesmo sistemas operacionais. Ex: UNIX, MSDOS, TPW.

existentes (através da norma ANSI C) e flexívelOs programas em “C” tendem a ser bastante

A linguagem de programação “C” tornou-se rapidamente uma das mais importantes e populares, principalmente por ser muito poderosa, portátil, pela padronização dos compiladores compactos e de execução rápida.

forma, todo programa é desenvolvido a partir deste núcleo básicoIsto implica na grande
processador e automaticamente já estará disponível um compilador “C” para este processadorPor

A linguagem “C” é baseada em um núcleo pequeno de funções e estruturas básicas, desta portabilidade de “C”, haja vista que basta a implementação deste núcleo básico para um dado esta razão, existem compiladores “C” para a grande parte dos sistemas computacionais atualmente disponíveis. Devido também a este pequeno núcleo, um programador C é capaz de desenvolver

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

programas tão eficientes, pequenos e velozes quanto os programas desenvolvidos em AssemblyPor

8 isso, diz-se que C é uma linguagem de alto nível, porém, próxima da linguagem de máquina.

2.2 Criando um Programa Executável

denominado de compilador, e grave o programa em disco dando a ele um nome como sufixo .CO
programa gerado é chamado de código fonteNa seqüência, compile o fonte seguindo as instruções
do seu compilador, o que criará um programa com o sufixo .OBJ em discoO programa gerado é
chamado de objetoPor fim, basta linkeditar o objeto seguindo as instruções do seu linkeditor o que
criará um programa com sufixo .EXE em discoO programa gerado é chamado de executável. A

Primeiro, escreva o seu programa (arquivo em modo ASCII), com o auxílio de um programa Figura 2 apresenta o processo de geração de um programa em C.

Figura 2 - Ilustração do processo de criação de um programa em C.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

2.3 A Estrutura Básica de um Programa em C

A forma geral de um programa em "C" é a seguinte:

<declarações locais>;/* comentários */

<diretivas do pré-processador> <declarações globais>; main() { <instruções>; } <outras funções>

Vamos começar por um programa bem simples em CVocê pode escrever este programa
em um arquivo ASCII e salvá-lo com um nome terminando em “.C”O programa serve para

escrever na tela a frase “Bom Dia!!!!”.

/* Programa : Bom Dia! */ #include <stdio.h> void main() { printf(“Bom Dia!!!!”); }

Na primeira linha, os símbolos /* e */ servem para delimitar um comentário do programaÉ
muito importante que os programas sejam comentados de forma organizadaIsto permite que outras
pessoas possam facilmente entender o código fonteOs comentários não são interpretados pelo
compilador, servindo apenas para a documentação e esclarecimento do programadorDepois,
Isto advém do fato de C ter um núcleo pequeno de funções básicasAo escrever esta linha

segue-se com uma diretiva para o pré-processador “#include <stdio.h>”. de código, o pré-processador irá acrescentar ao programa todas as funcionalidades definidas na

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

biblioteca “stdio” e irá linká-la posteriormente ao programaDesta forma, você poderá usufruir

10 todos os serviços disponíveis nesta biblioteca.

ser começada a execução do programaPortanto, esta função deve ser única, aparecendo somente
uma vez em cada programaO programa termina quando for encerrada a execução da função
main()No caso deste programa exemplo, ela não recebe nenhum parâmetro e também não retorna
parâmetro nenhumIsto fica explícito através da palavra-chave void escrita na frente do programa.
valor do tipo inteiro ao final de sua execuçãoComo este é o valor retornado pela função main(),
este também será o valor retornado pelo programa após a sua execuçãoAs funções e as suas
Todo o corpo de uma função em C é inicializado e finalizado através das chaves { e }Estas
chaves definem o bloco de instruções a serem executados por esta funçãoA primeira instrução
dada dentro do programa é “printf (“Bom Dia!!!!”);”Printf é uma função definida em “stdio.h”
para escrever dados na janela consoleTodas as instruções de programa têm que ser declaradas
dentro de alguma função (na main() ou outra qualquer)Todas as instruções devem estar dentro das
chaves que iniciam e terminam a função e são executadas na ordem em que as escrevemosAs
instruções C são sempre encerradas por um ponto-e-vírgula ( ; )O ponto-e-vírgula é parte da
instrução e não um simples separadorEsta instrução é uma chamada à função printf(), os
parênteses nos certificam disso e o ponto-e-vírgula indica que esta é uma instruçãoNota-se que a
parêntesesA final de cada instrução, faz-se necessário o acréscimo de um ponto-vírgula “;”.
As variáveis em C podem estar dentro de uma função ou no início do arquivo fonte

Por fim, temos a função “main()”. Esta função indica ao compilador em que instrução deve Se em vez de void tivéssemos escrito int, isto significaria que a função main() deveria retornar um características serão apresentadas em detalhes nos próximos capítulos. função é chamada escrevendo-se o nome desta e colocando-se os parâmetros desta dentro dos

(acessíveis) para todas as funções do programaVariáveis declaradas dentro de uma função são
"C" distingue nomes de variáveis e funções em maiúsculas de nomes em minúsculasVocê
compilador ignora estes caracteresEm C não há um estilo obrigatório. Entretanto, procure manter

Variáveis declaradas no início do arquivo fonte são consideradas “globais”, isto é, são visíveis consideradas “locais”, isto é, visíveis somente pela função onde são declaradas. pode colocar espaços, caracteres de tabulação e pular linhas à vontade em seu programa, pois o os programas tão organizados quanto for possível, pois isto melhora muito a legibilidade do programa, facilitando o seu entendimento e manutenção.

Informática para Automação – Linguagem de Programação

(Parte 1 de 7)

Comentários