LINGUAGEM DE PROGRAMAÇÃOC GrupoNT INFORMAÇÃOECOMUNICAÇÃO
Autor Grupo NT Revisão NT Editora e Figuramundo Projeto Gráfico NT Editora Editoração Eletrônica NT Editora e Figuramundo Capa NT Editora NT Editora, uma empresa do Grupo NT SCS Q2 - Bl. D - Salas 307 e 308 - Ed. Oscar Niemeyer CEP 70316-900 - Brasília - DF Fone: (61) 3421-9200 sac@grupont.com.br www.nteditora.com.br e www.grupont.com.br Linguagem de Programação C. / NT Editora. -- Brasília: 2014. 142p. : il. ; 21,0 X 29,7 cm. ISBN - 978-85-8416-060-0 1. Programação de Computadores I C. 2. Algoritmos. 3. Treinamento interativo. Copyright 2014 por NT Editora. Nenhuma parte desta publicação poderá ser reproduzida por qualquer modo ou meio, seja eletrônico, fotográfico, mecânico ou outros, sem autorização prévia e escrita da NT Editora.
LEGENDA ÍCONES Prezado(a) aluno(a), Ao longo dos seus estudos, você encontrará alguns ícones na coluna lateral do material didático. A presença desses ícones o(a) ajudará a compreender melhor o conteúdo abordado e também como fazer os exercícios propostos. Conheça os ícones logo abaixo: Saiba Mais Esse ícone apontará para informações complementares sobre o assunto que você está estudando. Serão curiosidades, temas afins ou exemplos do cotidiano que o ajudarão a fixar o conteúdo estudado. Importante O conteúdo indicado com esse ícone tem bastante importância para seus estudos. Leia com atenção e, tendo dúvida, pergunte ao seu tutor. Dicas Esse ícone apresenta dicas de estudo. Exercícios Toda vez que você vir o ícone de exercícios, responda às questões propostas. Exercícios Ao final das lições, você deverá responder aos exercícios no seu livro. Bons estudos!
Sumário 1. INTRODUÇÃO AOS ALGORITMOS... 7 1.1 Introdução... 7 2. INTRODUÇÃO À PROGRAMAÇÃO... 13 2.1 Introdução...13 2.2 Só para lembrar...13 3. USO BÁSICO DE FUNÇÕES... 24 3.1 Introdução...24 3.2 Só para lembrar...24 4. ESTRUTURAS CONDICIONAIS... 38 4.1 Introdução...38 4.2 Só para lembrar...38 5. ESTRUTURAS DE REPETIÇÃO... 53 5.1 Introdução...53 5.2 Só para lembrar...53 6. USO AVANÇADO DE FUNÇÕES... 66 6.1 Introdução...66 6.2 Só para lembrar...66 4 NT Editora
7. VETORES E MATRIZES... 76 7.1 Introdução...76 7.2 Só para lembrar...76 8. PONTEIROS E STRINGS... 89 8.1 Introdução...89 8.2 Só para lembrar...89 9. LIDANDO COM ARQUIVOS... 103 9.1 Introdução... 103 9.2 Só para lembrar... 103 10. ESTRUTURAS... 114 10.1 Introdução... 114 10.2 Só para lembrar... 114 11. OUTRAS TÉCNICAS COMUNS... 131 11.1 Introdução... 131 11.2 Só para lembrar... 131 Linguagem de Programação C 5
1. INTRODUÇÃO AOS ALGORITMOS 1.1 Introdução Programar consiste em criar soluções e transformá-las em software. A maior parte das soluções baseia-se em decisões a serem tomadas e ações a serem repetidas. Essas soluções são os algoritmos e, para convertê-las em software, você precisará usar um compilador baseado em uma linguagem de programação. Muitos termos novos? Vá ao CBT e comece o seu curso. Você não só conhecerá os conceitos teóricos básicos de programação como também saberá por que usar a poderosa linguagem C, na qual este curso se baseia. Quando terminar a lição, não se esqueça de realizar as atividades propostas abaixo. Exercitando o conhecimento... 1 Defina: Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. Programa de computador; Compilador; Linguagem de programação; Algoritmo. 2 O exemplo abaixo ilustra uma estrutura condicional simples, com apenas um nível de SE... SENÃO. Jogando uma moeda: SE sair cara, então... SENÃO o nosso time joga do lado esquerdo o nosso time joga do outro lado. Crie dois algoritmos com estruturas condicionais baseados em situações do dia a dia, de modo que o primeiro tenha apenas um SE... SENÃO e o segundo tenha dois SE... SENÃO aninhados (um dentro do outro). SUMÁRIO Linguagem de Programação C 7
3. As três estruturas de repetição abaixo possuem as mesmas ações, mas têm diferenças entre si. a) PARA a numeração do envelope começando em 1 até chegar a 50 Pegue o envelope numerado Feche o envelope numerado b) ENQUANTO não acabarem os envelopes Pegue o envelope numerado Feche o envelope numerado c) FAÇA Pegue o envelope numerado Feche o envelope numerado ENQUANTO não acabarem os envelopes Responda: baseando-se nos exemplos do CBT, em que situação é vantajoso usar cada um desses tipos de estruturas? 4. Em programação, o que é um loop infinito? 5. Crie uma estrutura de repetição PARA baseada no seu dia a dia. 6. Crie uma estrutura de repetição ENQUANTO baseada no seu dia a dia. 7. Crie uma estrutura de repetição FAÇA... ENQUANTO baseada no seu dia a dia. 8. Considere o exemplo: No fim do ano: você pode (ou não) ter uma pilha com vários envelopes para enviar cartões: ENQUANTO a pilha não estiver vazia Pegue o envelope do topo da pilha Preencha o envelope Coloque um cartão no envelope Feche o envelope /* Repete-se o processo */ O que acontecerá se a pilha estiver vazia já no início do algoritmo? 9. Além de ser uma das linguagens preferidas dos programadores profissionais, a linguagem ANSI C é portável e de médio nível. O que estes termos significam? Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 8 NT Editora SUMÁRIO
Exercícios Questão 01 O que é um programa de computador? Assinale a única alternativa correta. a) Sinônimo de software aplicativo, como o sistema operacional Windows, um programa é um comando enviado a um computador que executa alguma tarefa. b) Sinônimo de software, é um conjunto de instruções e regras que o computador deve executar de modo a resolver problemas e agilizar tarefas repetitivas. c) Visto que o hardware precisa do software, um programa de computador é o elo entre o software e o hardware, não pertencendo a nenhuma destas categorias. d) É a lógica de resolução de um problema. Parabéns, você finalizou esta lição! Agora responda às questões ao lado. Questão 02 Um programa usado para gerar outros programas e um conjunto de regras que o programador deve aprender para escrever seus programas definem, respectivamente: a) editor eletrônico e linguagem lógica; b) compilador e gramática da língua inglesa; c) compilador e linguagem de programação; d) editor de programas e linguagem lógica. Questão 03 Assinale a única alternativa que NÃO pode ser feita por um algoritmo: a) intuir que algo bom vai acontecer; b) calcular o imposto de renda de um bilionário; c) gerenciar uma lanchonete multinacional; d) estimar a expectativa de vida da população brasileira. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. Questão 04 Dado o algoritmo abaixo, como você reordenaria suas linhas para que o motorista, em hipótese alguma, chegasse em seu destino? a) 01, 02, 03, 04, 07, 06, 05. b) 01, 07, 03, 04, 02, 06, 05. c) 04, 05, 03, 01, 07, 06, 02. d) 01, 07, 03, 04,05, 06, 02. 01 SE o destino estiver à esquerda, então... 02 Viro o carro para a esquerda 03 SENÃO 04 SE o destino estiver à direita, então... 05 Viro o carro para a direita 06 SENÃO 07 Passo normalmente SUMÁRIO Linguagem de Programação C 9
Questão 05 Dados os algoritmos abaixo, assinale a única alternativa correta: /* Leitura total de um livro de 600 páginas*/ (1) PARA a numeração da página começando em 1 até chegar a 600 Leia a página Vá para a próxima página (2) ENQUANTO o livro não terminar Leia a página Vá para a próxima página a) o algoritmo (1) funciona exatamente do mesmo jeito que o algoritmo (2); b) o algoritmo (1) é mais genérico que o algoritmo (2) para o problema em questão; c) do jeito que estão, os dois algoritmos funcionariam bem se o livro tivesse 700 páginas; d) o algoritmo (2) funcionaria bem sem alterações mesmo que o livro tivesse 700 páginas. Questão 06 Dado o algoritmo abaixo, assinale a única alternativa correta: No fim do ano você pode (ou não) ter uma pilha com vários envelopes para enviar cartões: ENQUANTO a pilha não estiver vazia Pegue o envelope do topo da pilha de envelopes Preencha o envelope Coloque um cartão no envelope Feche o envelope /* Repete-se o processo */ a) quando a pilha ficar vazia, o algoritmo causará um erro, pois não está preparado para este caso; b) quando a pilha ficar vazia, o algoritmo ignorará as ações que forem impossíveis até parar; c) quando a pilha ficar vazia, o algoritmo se encerra; d) para usar este algoritmo, a pilha de envelopes nunca pode ficar vazia. Questão 07 Dado o algoritmo abaixo com uma pilha vazia (sem envelopes) como entrada, assinale a única alternativa correta: No fim do ano você pode (ou não) ter uma pilha com vários envelopes para enviar cartões: ENQUANTO a pilha não estiver vazia Pegue o envelope do topo da pilha de envelopes Preencha o envelope Coloque um cartão no envelope Feche o envelope /* Repete-se o processo */ Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 10 NT Editora SUMÁRIO
a) o algoritmo causará um erro, pois não está preparado para esse caso; b) o algoritmo ignorará as ações que forem impossíveis até parar; c) o algoritmo se encerra; d) para usar esse algoritmo, a pilha de envelopes nunca pode ficar vazia. Questão 08 O algoritmo abaixo entra em loop infinito se não houver ninguém conhecido na festa. Marque o algoritmo alternativo que resolve o problema corretamente sem loops infinitos: Em uma festa você chega em uma festa e faz questão de ficar conversando com alguém já conhecido: FAÇA Olhe para alguém na festa verifique se é conhecido ENQUANTO não encontrar alguém conhecido entre as pessoas da festa a) ( ) ENQUANTO não tiver olhado todos na festa Olhe para alguém na festa e verifique se é conhecido SE for conhecido, então... conversa com a pessoa. /* sai do algoritmo */ b) ( ) ENQUANTO não encontrar alguém conhecido Olhe para alguém na festa Verifique se é conhecido c) ( ) Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. d) ( ) FAÇA Olhe para alguém na festa e verifique se é desconhecido ENQUANTO não encontrar alguém conhecido FAÇA Olhe para alguém na festa e verifique se é conhecido SE for conhecido, então... sai da festa. /* sai do algoritmo */ ENQUANTO não encontrar alguém conhecido. SUMÁRIO Linguagem de Programação C 11
Questão 09 Para o algoritmo abaixo, considere que a festa não tenha ninguém (além de você, que não conta!). Assinale a única alternativa que retrata como o algoritmo irá se comportar: Em uma festa você chega em uma festa e faz questão de ficar conversando com alguém já conhecido: FAÇA Olhe para alguém na festa Verifique se é conhecido ENQUANTO não encontrar alguém conhecido entre as pessoas da festa a) o algoritmo funcionará normalmente; b) o algoritmo entrará em loop infinito; c) entrará em loop até que o algoritmo perceba que não conseguiu resolver o problema; d) o algoritmo simplesmente não funcionará nesse caso. Questão10 Quais são as principais vantagens da linguagem C? a) É portável, popular, de poucos recursos, tem uso profissional, é de alto nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens. b) É portável, popular, poderosa, tem uso profissional, é de médio nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens. c) Não é portável, popular, poderosa, tem uso profissional, é de médio nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens. d) É portável, poderosa, restrita ao uso acadêmico, é de alto nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens. Reprodução proibida. Copyright NT Editora. Todos os direitos reservados. 12 NT Editora SUMÁRIO