Introdução à Programação com a Linguagem C
Aprenda a resolver problemas com uma abordagem prática
Descrição do livro
Este livro oferece conteúdo abrangente e plenamente compatível para ser utilizado como material didático em disciplinas introdutórias de programação, seja no ensino médio, cursos técnicos, universidades ou mesmo em cursos de curta duração.
O texto é baseado em uma metodologia de aprendizado por experiência e com grande foco na prática de exercícios. Esse aprendizado se dá por meio de quatro etapas cuidadosamente exploradas em cada assunto: experiência concreta, pequenas modificações, analogia e experimentação livre.
Diferentemente do que é comum encontrar nos livros de programação, neste livro os conceitos são introduzidos sempre que se fazem necessários para resolver um determinado problema. Ou seja, primeiro apresenta-se um problema prático para ser resolvido e só então os conteúdos necessários são introduzidos.
Os leitores terão à disposição uma ferramenta on-line para a correção automática dos exercícios propostos. O escopo do livro abrange desde o início, com o entendimento sobre o que são algoritmos e o funcionamento básico de um computador, até questões mais avançadas, como recursão, alocação dinâmica, ponteiros e várias dicas de programação.
Ao final do livro, o leitor estará apto a resolver problemas utilizando a linguagem de programação C
Principais assuntos abordados no livro:
• Entrada e saída
• Atribuição
• Operações aritméticas
• Decisão
• Operações lógicas
• Repetição
• Função
• Array
• Matriz
• String
• Ponteiro
• Estrutura
• Recursão
• Alocação dinâmica
• Estilos de codificaçãoVer menos ▲
Sumário
- Agradecimentos
- Sobre o autor
- Apresentação
- Capítulo 1 ■ Uma palavra do autor
- 1.1 Caro estudante
- 1.2 Caro professor
- 1.3 Como utilizar este livro
- 1.3.1 Convenções adotadas neste livro
- 1.3.2 Códigos do livro
- 1.4 The Huxley
- Capítulo 2 ■ O que é programação?
- 2.1 Mais um algoritmo
- 2.2 Exercícios
- Capítulo 3 ■ Funcionamento básico de um computador
- 3.1 Exercícios
- Capítulo 4 ■ Primeiro programa
- 4.1 “Primeiro Programa em C\n”
- 4.2 Exercícios
- Capítulo 5 ■ Elementos básicos da programação
- 5.1 scanf
- 5.2 Voltando ao problema
- 5.3 Operações aritméticas
- 5.4 Atribuição
- 5.5 printf
- 5.6 Exercícios
- 5.7 Exercício comentado: consumo
- Capítulo 6 ■ Prática com os elementos básicos
- 6.1 Quantos segundos?
- 6.1.1 Solução
- 6.2 Calculadora
- 6.2.1 Solução
- 6.3 O homem que calculava
- 6.3.1 Solução
- 6.4 IMC
- 6.4.1 Solução
- 6.5 Troco
- 6.5.1 Solução
- 6.6 Área do triângulo
- 6.6.1 Solução
- 6.7 Desenhando um quadrado
- 6.7.1 Solução
- 6.8 Exercícios do The Huxley
- Capítulo 7 ■ Decisão
- 7.1 Comando if
- 7.1.1 Exercícios
- 7.2 Operadores lógicos
- 7.2.1 Operador lógico E ( && )
- 7.2.2 Operador lógico OU ( || )
- 7.2.3 Operador lógico OU exclusivo ( ^ )
- 7.2.4 Operador lógico unário Não ( ! )
- 7.2.5 Resolvendo o problema do cinema
- 7.2.6 Exercícios
- 7.3 E se não for verdade?
- 7.3.1 Exercícios
- 7.3.2 Exercício comentado: menor de três
- 7.4 Mas como selecionar entre várias opções?
- 7.4.1 Exercícios
- 7.5 Exercício comentado: eleitor
- 7.6 Exercício comentado: equação do segundo grau
- 7.7 Exercício comentado: imprimir dois números em ordem crescente
- 7.8 Decisões aninhadas
- 7.8.1 Exercício comentado: a corrida de aventura
- 7.8.2 Exercício comentado: devagar, devagar, olhe o radar!!
- 7.9 Exercícios do The Huxley
- Capítulo 8 ■ Repetição
- 8.1 Comando while
- 8.1.1 Exercícios
- 8.1.2 Exercício comentado: o número é primo?
- 8.1.3 Exercícios
- 8.1.4 Exercícios do The Huxley
- 8.2 Comando for
- 8.2.1 Exercícios
- 8.2.2 Comando for em detalhes
- 8.2.3 Exercícios
- 8.2.4 Exercícios do The Huxley
- Capítulo 9 ■ Funções
- 9.1 Exercícios
- 9.2 Os parâmetros são passados por valor
- 9.3 Retornando valores e passando mais de um valor como parâmetro
- 9.4 Exercício comentado: função maior de dois
- 9.5 Exercício comentado: função maior de três
- 9.6 Exercício comentado: área do círculo
- 9.8 Exercício comentado: triângulo de números
- 9.9 Exercícios
- 9.10 Exercícios do The Huxley
- Capítulo 10 ■ Array
- 10.1 Exercício comentado: quantas vezes x apareceu?
- 10.2 Exercícios
- 10.3 Exercícios do The Huxley
- 10.4 Outras formas de inicialização
- 10.5 Passando arrays como parâmetros para funções
- 10.6 Exercícios
- 10.7 Array com duas dimensões (matrizes)
- 10.8 Percorrendo um array bidimensional linha por linha
- 10.9 Exercícios
- 10.10 Exercício comentado: adicionar duas matrizes
- 10.11 Exercício comentado: matriz transposta
- 10.12 Exercícios
- 10.13 Exercícios do The Huxley
- Capítulo 11 ■ String
- 11.1 Inicialização
- 11.2 Leitura
- 11.3 Impressão
- 11.4 Exercício comentado: tamanho de uma frase
- 11.5 Exercícios
- 11.6 Exercícios do The Huxley
- Capítulo 12 ■ Ponteiros
- 12.1 Exercício comentado: ordenar três variáveis inteiras
- 12.2 Exercício comentado: o que será impresso pelos quatro printfs?
- 12.3 Exercício comentado: quais os valores de firstvalue e secondvalue?
- 12.5 Exercício comentado: qual o valor de y?
- 12.6 Valor NULL
- 12.7 Exercícios do The Huxley
- Capítulo 13 ■ Estruturas
- 13.1 Exercícios
- 13.2 Exercício comentado: características físicas
- 13.3 Exercícios
- 13.4 Exercícios do The Huxley
- Capítulo 14 ■ Recursão
- 14.1 Exercício comentado: soma recursiva dos elementos de um array
- 14.2 Exercícios
- 14.3 Exercício comentado: Fibonacci
- 14.4 Exercício comentado: palíndromo
- 14.5 Exercícios
- 14.6 Exercícios do The Huxley
- Capítulo 15 ■ Catálogo das principais habilidades
- 15.1 Escrever na tela
- Exemplos de implementação
- 15.2 Ler dados que o usuário digitou
- Exemplos de implementação
- 15.3 Transformar um valor
- Exemplos de implementação
- 15.4 Executar uma ação quando uma condição for verdadeira
- Exemplo de implementação
- 15.5 Executar uma ação ou outra dependendo da condição
- Exemplo de implementação
- 15.6 Executar uma ação dentro de uma lista de várias possibilidades
- Exemplo de implementação
- 15.7 Trocar o conteúdo de duas variáveis
- Exemplos de implementação
- 15.8 Ordenar dois ou três valores numéricos
- Exemplos de implementação
- 15.9 Repetir um número específico de vezes
- Exemplo de implementação
- 15.10 Repetir enquanto uma condição é verdade
- Exemplo de implementação
- 15.11 Contar
- Exemplo de implementação
- 15.12 Ler uma lista de valores e guardar em uma variável
- Exemplos de implementação
- 15.13 Percorrer uma lista de valores
- Exemplos de implementação
- 15.14 Ordenar uma lista de valores numéricos
- Exemplo de implementação
- Capítulo 16 ■ Dicas sobre acentuação, incremento, ponteiro, alocação dinâmica, array e string
- 16.1 Usando acentos no terminal
- 16.2 ++i ou i++
- 16.3 Ponteiros e arrays
- 16.3.1 Incrementando ponteiros
- 16.4 Alocação dinâmica de memória
- 16.4.1 Alocação dinâmica de arrays bidimensionais (matrizes)
- 16.5 Passando matrizes como parâmetros
- 16.6 Funções de manipulação de strings
- 16.6.1 strcpy
- 16.6.2 strcat
- 16.6.3 strcmp
- 16.6.4 strchr
- 16.6.5 strstr
- 16.6.6 strlen
- 16.7 O problema da precisão de números reais
- Capítulo 17 ■ Guia de estilo de codificação
- 17.1 Nome do arquivo
- 17.2 Indentação
- 17.3 Função main
- 17.4 Constantes e macros
- 17.5 Declaração de variáveis
- 17.6 Comandos
- 17.6.1 if else
- 17.6.2 switch
- 17.7 Regras gerais
- Considerações finais
Sobre o autor
Rodrigo de Barros Paes é doutor em Informática pela Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio). É professor de disciplinas de programação da Universidade Federal de Alagoas (UFAL) desde 2009. Além disso, é treinador da UFAL para as competições da Maratona de Programação e da Olimpíada Brasileira de Informática. Possui… Ver perfil completo ▶
Livros relacionados
Opinião dos leitores
Newdecyr C M J
Estou terminando de ler... Aprendi muito... Obrigado.
Deyvison B
Muito bom. Conteúdo didático e de fácil entendimento. O autor pecou em pular alguns termos e assuntos essenciais para quem está realmente começando, mas não influenciou em muita coisa, pois o livro é ótimo... Leio todos os dias dentro do ônibus!
Adriano L
Não passa da divulgação do site do autor. Livro possuí certa base, contudo é desconexo e também apelativo ao que se entende das questões. Para acessar a questão é necessário acessar o site do autor do livro e efetuar um cadastro. O que em outros livros, não é necessário. O conteúdo deixa a desejar. Ensina pouco e não auxilia tanto quanto eu esperava das questões básicas de programação C. Nada mais que propaganda. Infelizmente gastei dinheiro à toa. O livro tem sequência das questões e não pula abruptamente uma ordem lógica de ensinamento.
Vinícius d S O
Como discutir programação sem discutir código-fonte? E o livro Introdução à Programação com a Linguagem C acerta nesse ponto, com exemplos iluminadores para os conceitos ensinados, e uma disposição de conteúdo gradual e simples que devem tornar o aprendizado efetivo. Como um professor dedicado, o autor deve ter aproveitado seu material, os seus alunos, como um experimento para encontrar exemplos que funcionassem. Uma preocupação com simplicidade que omite ou adia a preocupação com certos conceitos nos capítulos iniciais. Uma decisão que permite o livro ser fácil de entender e ser tão curto quanto é. É o contrário da especificação da linguagem, apropriado para aprendizado. Entretanto, o livro não deixa de apresentar pequenas nuâncias nos conceitos durante o decorrer da leitura, que só ressaltam a preocupação em fazer os conceitos serem entendidos corretamente, ao explicitar uma consequência ou outra de cada regra, de forma lenta, sem sobrecarregar o aluno, de forma mais efetiva que não se perca em muitas informações para se lembrar. Essa preocupação é bem abrangente e cobre, por exemplo, segurança, terminologia e arquitetura. Um grande exemplo de como conciliar pragmatismo no ensino sem criar um aluno ignorante. Os trechos código comentados ainda possuem o bônus de gradualmente, e de forma lenta, sem forçar sobrecarga de conteúdo, apresentar exemplos sutis de dividir para conquistar, abordagem top-down e outros bons conceitos para habilidades gerais de solucionar problemas, mas só quando a fundação da linguagem já foi bem explorada e o aluno já deveria estar melhor acostumado com questões de sintaxe, o que acho muito acertado no livro. Todo o capítulo de recursão é um bônus a parte que estimula o aluno a quebrar a forma de pensar com a qual todo o resto do livro o acostuma e, assim, espero, o estimule a sempre procurar novas formas de resolver problemas e aprender mais, em vez de ficar limitado e satisfeito com o próprio livro. Esse é um livro que eu recomendaria a qualquer pessoa que nunca teve contato com programação e deseja aprender a programar utilizando a linguagem C.






