Baixe o app para aproveitar ainda mais
Prévia do material em texto
� � � � �� � � � �� � � � � � � � � � � � � � Programação Avançada em C Usando Algoritmos e Estruturas de Dados Fundamentais � � � � � � � � � ff � fi � fl � ffi � � ffi � The Ualg Informatics Lab Universidade do Algarve http://w3.ualg.pt/~jvo jvo@ualg.pt ! " # $ % & ' ( ' ) ' * + , - ( . / 0 $ 1 " 1 # , 2 , 3 4 & " $ 1 5 3 6 7 " - 7 6 , 8 & $ & 2 9 : , ; 6 7 " - < , = # " , 1 6 > " = & : : & - $ ? 1 # 6 2 9 6 < % & @ A $ & B % & @ = & : " # 7 6 , 3 @ ! " 8 , 8 , , = # 6 , < % & 8 " C 2 # , $ D " # 6 > , 8 , $ E ( F G & # 1 9 H , 3 ( G , # , > " # 9 : , 7 I J 6 , 8 " $ 1 , 3 6 7 " - < , K > 6 $ 6 1 " 4 1 1 J LM M 7 # " , 1 6 > " 7 & : : & - $ ( & # H M 3 6 7 " - $ " $ M 2 N @ - 7 @ - 8 M E ( F M J 1 M & 9 " - > 6 " 9 : , 7 , # 1 , J , # , = # " , 1 6 > " = & : : & - $ K ' O ' P " 7 & - 8 P 1 # " " 1 K P 9 6 1 " Q . . K P , - R # , - 7 6 $ 7 & K = , 3 6 S & # - 6 , T U ' . F K A P ? ( � � � � �� � � � �� � � � � � � � � � � � � � Índice 0. Preâmbulo � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ff � fi � fl � � � � ffi � � � � 1. Introdução � � � � � � � � � � � � � � � � � � � � � � � � � fl � ffi � � � � � � � � � � � � � � ! � � � � � � � � � � � � � " � � fl � � � � � � # � � fl � � � fl � � � � � � � $ � � % � � � � ff � � � � � � � � � fl � � � fl � � � � � � � � � & � # ' � fl ( � � 2. Arrays e Ponteiros � � � � � � � � fl � � � ) � � fl � � % � � ffi � � � � � fl � � � � * � fl � � � � � ff � � � � � � fl � � � fl � � � � � � � � � � & � � � � � � fl � � � � � � � � � � + � � � � � � fl � � � � � � � � � � � fl � � � � � � � � � � , � � � � � � fl � � � fl � ! � � � % � � � - � � � � � � fl � � � fl � � � � fl � � � fl � � � � � � �� � � � �� � � � � � � � � � � � � � � � � fi fl fl � � � � � � � � � � fl � � � � � fi fl � � ffi � � � � � � ! � � � � ffi � � � � � � � # ' � fl ( � � 3. Reserva dinâmica de memória � � � � � � � � fl � � � � � � ffi � � � � ffi � ffi � fl � � � � fl � � fl fl � � � � � � � � � � fl � � � � � � ffi � � � � ffi � ffi � fl � � � � fl � ffi � � fl � " � � � � � � # ' � fl ( � � 4. Primeiras noções de complexidade ff � � � � ffi � � � ' � � � � � � � � � ffi � � � � � � ff � � # ' � fl ( � � ff � � � � � � � � � � � � ffi � � � ' � � � � � � � � � � � � � ) ff � ff � � ffi � � � ' � � � � � � fl � � fl � � � � � � � � ff � ff � � � * � fl � fl � � fl � � � � � � � � ff � ff � � * � fl � fl � fl fl � � � � � ff � ff � � � ) � � fl � ffi � ffi � � � fl � ff � & � # ' � fl ( � � 5. Algoritmos elementares de ordenação & � � � � fl ffi � � � � � � � � � ! � � � � � � � � fl � � � ffi � � � fl � � � � � � & � � ) fl � � � � � � � fl � � � � � � & � � � ) fl � � � � � � � fl � fl � � � � � � � * fl � & � ff � ) fl � � � � � � � fl � � � � fl � � & � & � # ' � fl ( � � 6. Mergesort + � � � � � fl � � � � � � � fl � � ffi + � � � � � ffi � � � � + � � � � � � � � � � � � � fl + � ff � # ' � fl ( � � � � � � �� � � � �� � � � � � � � � � � � � � 7. Quicksort , � � � fi � � fl � � ffi � � � � , � � � � fl � � � fl � � � � � � � � � � , � � � � � fl � � � � � � � � , � ff � � � � ffi � � � � , � ff � � � � � � � fl � ffi � � � � � � � � � � % � � � � � � � � � � , � ff � � � � � � fl � ffi � � � � � � fl � � � � � � � � ffi � � � � � � � � � � ffi � � fl � � , � & � fi ! � � � � � � fl � � fi � * � � , � + � � ffi � � � � fl � � ! � � � � � , � , � # ' � fl ( � � 8. Introdução às listas ligadas - � � � � � � � � � � � ffi � � � � ffi � � � � � � � � � � � - � � � fl ffi � � � � � � - � � � � fl � ffi � � fl � � � ffi � � � ffi � � � � � % � � - � ff � # ' � fl ( � � 9. Primeiras noções de Projecto e de Projecto por Contrato � � � � � � � � � � fl � � � � � � � � � fl � ffi � � � � � � fl � � � fl � � � � � � � ffi � � � � � � � � � � � � fl � ffi � � � � � � fl � � � fl � � � � � # ' � ffi � � � � � � � � � � � � ffi IR� � � � � � � � fl � � � � � � ! � � fl � � � � � � � � � � � � � � � � � � � fi � � � ffi � � � � � � � � � � � � � � ff � � � fl ( � � � � � � � � fl � � � � � & � � fl � � � � fl � � � fl � � � � + � # ' � fl ( � � � � � � �� � � � �� � � � � � � � � � � � � � 10. As listas ligadas revisitadas � � � � � � � � � fl ! � � � � fl � � � � � � � � � � � � ffi � � � ffi � � � � � � � � ! � � � % � � � � � ffi � � � � � � � � � � � � � � � � � � � � � � � ff � ) fl � � � � � � � ffi � � � � � � � � � � � � � � � � & � � � � � � � � fl � � � fl � � � � ffi � � � � ffi � � � � � � � � � � � � � � + � � � � � � � � � � � � ffi � � � � � � � � � � � � � � , � # ' � fl ( � � 11. Tipos de dados abstractos 12. O tipo de dados abstracto pilha � � � � $ ffi � � � � � fl ! � � � � fl � fi � � � � � � � � $ ffi � � � � � � ! � � � � ! fl ffi � � � � fl � fi � � � � � � � � � � fl � fl � ffi � � � � � � � � � � � � � � � fi � � � � � � � � � � ' � fl � � � % � � � fl � � ffi � � � � � � � � ff � � fl � ffi � � fl � � � ffi � � � ffi � � � � � % � � � � fl � fi � � � � � � � ff � � � $ � � � � � � � � � � � � ff � � $ � � � � � fl fl � � � � � ff � � � fi � � � � � � fl fl � � � � � & � � fl � fl � ffi � � � � � � � � � � � � � � � � � � fl � fl � � � ' � fl � � � % � � � � � � � fl � � � � � � � � � � � � ! � ' � � � fl � � � � � � � � ! � ' � � � � + � # ' � fl ( � � 13. O tipo de dados abstracto fila de espera � � � � � $ ffi � � � � � fl ! � � � � fl � fi ! � � � � � � � � � fl � � � � � � ffi � � � ffi � � � � � � � fi ! � � � � � � � � � fl � � � � � � � $ � � � � � ffi � � � � � � � � � � � � � � � � � $ � � � � � ffi � fl fl � � � � � � � # ' � fl ( � � � � � � �� � � � �� � � � � � � � � � � � � � 14. As filas revisitadas � ff � � � � � � � � � � � � � fl � � � ff � � � � � � � � � fl ! � � � � � ffi � � � � fl � ff � � � � � ffi � � � ffi � � � � � � � � � � � � � � ffi � fl fl � � � � ff � � � � � � ffi � fl � fl � � � � � � � ff � � � � � � � � fl ! � � � � � � � � ff � � � � fl � ffi � � fl � � � ffi � � � ffi � � � � � % � � � ff � � � � � � � � ff � ff � # ' � fl ( � � 15. Implementação em C de ADTs com múltiplas instâncias � & � � � $ ffi fi � � � ffi ffi � � � � � � � � � � � � � � � � � � & � � $ ffi fi ! � � � � � � � � � fl � ffi ffi � � � � � � � � � � � � � � � � � � & � � � � fl � fl � ffi � � � � � � � � � ! � � � � � � � � � fl � � � � � fl � fl � � fl � � � � � ffi ! fl � � % � � � & � ff � # ' � fl ( � � 16. O tipo de dados abstracto polinómio � + � � � � � � � fl ! � � � + � � � ffi � � � ffi � � � � � � � � � � � � � � ffi � fl fl � � � � + � � � � ffi � � � ffi � � � � � � � � � � � � � � ffi � � � � � � � � � � � � � � � + � ff � # ' � fl ( � � 17. O ADT matriz esparsa � , � � � � � � fl� � � � � , � � � � � fl � � � � � � � � � ffi � � ! � � � % � � � � � � � � fl ! � � � , � � � � ffi � � � ffi � � � � � � � � � � � � � � ffi � fl fl � � � � , � ff � � ffi � � � ffi � � � � � � � � � � � � � � � � � � � � � � � � � , � ff � � � � fl � ffi � � fl � � � � � � � � � � � � � �� � � � �� � � � � � � � � � � � � � � , � ff � � * � � � � � � � � � � � � � � � , � & � # ' � fl ( � � 18. Primeiras noções sobre árvores � - � � � � ffi � � � ffi � � � � � � � � � fl � fl � � fl � � � � � � � � - � � � � � � ffi � � � ffi � � � � � � � � � fl � fl � � fl � � � � � � � � � � � � � � � ffi � fl fl � � � - � � � � � ffi � � � ffi � � � � � � � � � fl � fl � � fl � � � � � � � � � � � � � � � ffi � � � fl � � � fl � � � � � � � � - � � # ' � fl ( � � 19. Árvores binárias � � � � � � � � � % � � � � � � fl � � � � � � ffi � � � � � � � � fl � fl � � � � � � � � � � � � � � ! � � � % � � � � � ffi � � � � fl � � fl � � fl � � � � � � � � � � # ' � fl ( � � 20. Acervos e filas com prioridades � � � � � ! � � � � � � � � � fl � � � � � fl � � � ffi � � � � � � fl � fl fl � � � � � � � � � � � � � � � � � � � � � � fl � � � � � � ffi � � � ffi � � � � � � � � ! � � � � ffi � fl � fl � � � � � � � � � � � � � fl � � � � ff � fi � � fl � � ffi � � fl � � � � � � � � � � � � � ffi � � fl � � � � & � # ' � fl ( � � Referências bibliográficas � � � � �� � � � �� � � � � � � � � � � � � � Referência rápida sobre C R1. Preliminares R2. Algumas características do C R3. Exemplo de programa � � � � � � � fl � � � � � fl � fl � ffi � R4. Elementos de sintaxe � ff � � � � � � � � � ! � � � fl � � � ff � � � � � � � � % � � � � � � � � � � � � fl � � � � � � � ! � � � fl � � � ffi � � ff � � � � � � � � fl � � � � � � � � ff � ff � � � � � � � � � � � ff � & � � � � � � ! � � � fl � � � ff � + � � � � fl � � � � � � ! � � � � � � � � � fl � � � � � � � ff � , � � � � � � � � � � � ff � , � � � � � � � � � � � � � � � � � fl � � � ff � , � � � � fl � � � fl � � � � � � � � � � � ff � , � � � � � � � � � � � � fl � � � � � ff � - � ) � � fl � � fl � � � ff � - � � � ) � � fl � � fl � � � fl � � ffi � � � � � ff � - � � ) � � fl � � fl � � � fl � � � � � � � � ff � - � � � ) � � fl � � fl � � � � � � � � fl � � � � � � � � � ff � - � ff � ) � � fl � � fl � � � � � � fl � � � � � � � ff � - � & � ) � � fl � � fl � � � � � � � � � � ff � - � + � � � � � � � fl � � � fl � � � ffi � � fl � � fl � � � � � � � � ff � - � , � ) � fl � � � fl � � � fl � � fl � ( fl � � � � � � � � �� � � � �� � � � � � � � � � � � � � � ff � - � - � � fl � � � � � � � � R5. Controlo de fluxo do programa � & � � � � � � � fl � � % � � � � � � � � � � � � ! � & � � � � � � fl � � % � � � � � � � � � � � � � � � � � & � � � � � � � fl � � % � � � � � fl � � � � � � � � � � � � � & � ff � � � � � fl � � % � � � � � fl � � � � � � � � � & � & � � � � � fl � � % � � � � � fl � � � � � � � ! fl � & � + � � � � � fl � � % � � � � � � fl � � ' � � � � � � � � � � � fl � � � fl � � R6. Funções � + � � � � fl ffi � � � � � � � + � � � � � � � � � ffi � � � fl � � ffi � � � � � ! � � � % � � � + � � � fi � � � � � � * � � � � R7. Arrays e Matrizes � , � � � * � fl � � � � � , � � � � � fl � " � � ffi � � � � � � ffi � � � � � � � � R8. Ponteiros � - � � � fi fl � � ffi � � � � � � � � � � � fl � � - � � � � � � � fl � � � fl � � � � � � � � � � - � � � � � � � � fl � � � � � � � � � � - � ff � � � � � � fl � � � � � � � � � � � fl � � � � � � � � � � - � & � � � � � � fl � � � fl � ! � � � % � � R9. Sinónimos de tipo R10. Estruturas � � � � �� � � � �� � � � � � � � � � � � � � � R11. Uniões R12. Campos de bits R13. Enumerações R14. Directivas de Pré-processador R15. Biblioteca de funções � � & � � � � � � � � � & � � � � � � � � & � � � � fi � � � ffi � � ! � � � % � � � � fl � � � ( � � � ! fl ffi � � � � � � & � � � fi � � � ffi � � ! � � � % � � � � fl � � � � fl � � � � ! fl ffi � � � � � � Índice Remissivo � � � � �� � � � �� � � � � � � � � � � � � � � 0. Preâmbulo ? $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ S , � " : J , # 1 " 8 & 7 & - � 9 - 1 & 8 " 7 & : J " 1 � - 7 6 , $ 7 " - 1 # , 6 $ � 9 " 9 : " $ 1 9 8 6 & $ & 8 " � - S & # : 5 1 6 7 , 8 " > " # 5 , 8 � 9 6 # 6 # ( B , H , 3 " # 6 , 8 , $ 3 6 - H 9 , H " - $ 8 " J # & H # , : , < % & K , 3 6 - H 9 , H " : = & 7 9 J , 9 : 3 9 H , # 8 " 8 " $ 1 , � 9 " ( � $ " H 9 # , : " - 1 " 9 : , 8 , $ 3 6 - H 9 , H " - $ 9 $ , 8 , $ , 7 1 9 , 3 : " - 1 " 7 & : : , 6 $ 1 " : J & 8 " J # & > , $ 8 , 8 , $ ( ? 3 6 - H 9 , H " : = � 9 : , 3 6 - H 9 , H " : J " � 9 " - , K 8 " " $ 7 # 6 1 , 7 & - 8 " - $ , 8 , K " � 1 # " : , : " - 1 " " S 6 7 6 " - 1 " K � 9 " J " # : 6 1 " 9 : " 3 " > , 8 & - � > " 3 8 " 6 - 1 6 : 6 8 , 8 " 7 & : & 7 & : J 9 1 , 8 & # ( B % & " � 6 $ 1 " & 9 1 # , 3 6 - H 9 , H " : 8 " , 3 1 & - � > " 3 , 7 1 9 , 3 � 9 " J " # : 6 1 , : , 6 & # - � > " 3 8 " J # & � 6 : 6 8 , 8 " 7 & : , : 5 � 9 6 - , K " $ J " 7 6 , 3 : " - 1 " - & � 9 " $ " # " S " # " $ $ 9 , $ 7 , J , 7 6 8 , 8 " $ 8 " , # 6 1 : � 1 6 7 , 7 & : J & - 1 " 6 # & $ ( ? � 9 - 1 , # , 6 $ 1 & K , 3 6 - H 9 , H " : = 1 " : : " 7 , - 6 $ : & $ 8 " , 2 $ 1 # , 7 < % & $ 9 S 6 7 6 " - 1 " $ J , # , J " # : 6 1 6 # 9 : , 6 : J 3 " : " - 1 , < % & , 8 " � 9 , 8 , 8 " " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ K , 3 H & # 6 1 : & $ K J # & H # , : , $ " : " $ : & $ 6 $ 1 " : , $ ( ? & 7 , $ , # : & $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ 7 & : = - % & " $ 1 , # " : & $ , $ " # : 9 6 1 & & # 6 H 6 - , 6 $ ( 0 $ 1 , " $ 7 & 3 4 , � $ " H 9 6 8 , - , $ 8 6 $ 7 6 J 3 6 - , $ 8 " ? 3 H & # 6 1 : & $ " 0 $ 1 # 9 1 9 # , $ 8 " D , 8 & $ " : : 9 6 1 & 7 9 # $ & $ 8 " � - S & # : 5 1 6 7 , J & # " $ 1 " : 9 - 8 & S & # , K 6 - 7 3 9 6 - 8 & , 3 H 9 - $ 8 & $ - & $ $ & $ J # I J # 6 & $ 7 9 # $ & $ 8 " 0 - H " - 4 , # 6 , ( 0 $ $ " - 7 6 , 3 : " - 1 " , & # 6 H 6 - , 3 6 8 , 8 " 8 & 3 6 > # & " $ 1 5 # " 3 , 7 6 & - , 8 , 7 & : , , 2 & # 8 , H " : J # , H : 5 1 6 7 , $ " H 9 6 8 , - , , J # " $ " - 1 , < % & 8 , $ : , 1 � # 6 , $ ( ? - & $ $ , " � J " # 6 � - 7 6 , " : $ , 3 , 8 " , 9 3 , K : & $ 1 # , @ - & $ � 9 " & , $ $ 9 - 1 & K - % & $ " - 8 & 8 6 S � 7 6 3 K � : 9 6 1 , $ > " � " $ 6 - 1 6 : 6 8 , 1 6 > & J , # , & # " 7 � : @ 7 4 " H , 8 & ( ? & 3 & - H & 8 & 3 6 > # & 9 1 6 3 6 � , : & $ 9 : , 3 6 - H 9 , H " : 7 3 , # , K 8 " 3 " 6 1 9 # , S 5 7 6 3 K $ " : & S # " � 9 " - 1 " " 8 " $ - " 7 " $ $ 5 # 6 & � � � � 1 � 7 - 6 7 & @ 7 6 " - 1 � S 6 7 & , $ $ & 7 6 , 8 & , " $ 1 , $ : , 1 � # 6 , $ ( ? J " $ , # 8 " $ 1 " " $ 1 6 3 & - % & $ " J # " $ 7 6 - 8 " 8 & # 6 H & # � 9 " 3 " > , & 8 " $ " - > & 3 > 6 : " - 1 & 8 " J # & H # , : , $ 8 " � � � ffi fi � fi � K 8 " $ 6 H - , 8 , : " - 1 " - & � 9 " $ " # " S " # " $ 9 , 7 & # # " 7 < % & ( G , # , J # & $ $ " H 9 6 # " $ 1 " & 2 � " 7 1 6 > & K 7 " 8 & , J # " $ " - 1 , : & $ - & < � " $ 8 " J # & � " 7 1 & " 8 " J # & � " 7 1 & J & # 7 & - 1 # , 1 & � 9 " - & $ , � 9 8 , : - & 8 " $ " - > & 3 > 6 : " - 1 & $6 $ 1 " : 5 1 6 7 & 8 & $ J # & H # , : , $ $ 9 2 $ " � 9 " - 1 " $ ( � � � � �� � � � �� � � � � � � � � � � � � � � B % & J # " 1 " - 8 " : & $ $ " # " � , 9 $ 1 6 > & $ - , , J # " $ " - 1 , < % & 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ ( = & - 7 " - 1 # , : & @ - & $ - , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ S 9 - 8 , : " - 1 , 6 $ K J , # , 8 6 $ 7 9 1 6 # : & $ " 6 3 9 $ 1 # , # : & $ , $ > 5 # 6 , $ , 3 1 " # - , 1 6 > , $ $ 9 , 6 : J 3 " : " - 1 , < % & " : = ( C > & 3 9 : " � , 9 1 & @ 7 & - 1 6 8 & K 6 - 7 3 9 6 - 8 & 6 - 7 3 9 $ 6 > , : " - 1 " - & S 6 - , 3 9 : , # " S " # � - 7 6 , # 5 J 6 8 , K : , $ 7 & : J 3 " 1 , K $ & 2 # " = ( � & 8 & $ & $ 7 & - 7 " 6 1 & $ $ % & 8 " > 6 8 , : " - 1 " 6 3 9 $ 1 # , 8 & $ ( A 1 6 3 6 � , : & $ " � " : J 3 & $ 6 - 1 " - $ 6 > , " " � 1 " - $ 6 > , : " - 1 " ( R , � " : & @ 3 & , & - � > " 3 8 , 6 - 1 # & 8 9 < % & 8 " 9 : 7 & - 7 " 6 1 & : , $ 1 , : 2 � : 8 " J & 6 $ , & - � > " 3 8 , 6 : J 3 " : " - 1 , < % & " : = ( R , � " : & @ 3 & , 6 - 8 , 8 " 9 : , S & # : , $ 6 $ 1 " : 5 1 6 7 , 8 " $ 8 " , 6 - 1 # & 8 9 < % & 8 & $ " 3 " : " - 1 & $ S 9 - 8 , : " - 1 , 6 $ 8 , J # & H # , : , < % & K 7 & : & , - & < % & 8 " 1 6 J & $ & 9 8 " 1 6 J & $ 8 " 8 , 8 & $ , 2 $ 1 # , 7 1 & $ K , 1 � , & $ 1 I J 6 7 & $ : , 6 $ , > , - < , 8 & $ K 7 & : & & 8 , $ : , 1 # 6 � " $ " $ J , # $ , $ ( ? , 2 & # 8 , H " : � K J & # 1 , - 1 & K " : 6 - " - 1 " : " - 1 " J # 5 1 6 7 , ( G , # , � 9 " & 3 " 6 1 & # J & $ $ , 6 # S , � " - 8 & , $ 9 , J # I J # 6 , , 9 1 & @ , > , 3 6 , < % & K 7 , 8 , 7 , J � 1 9 3 & 1 " # : 6 - , 7 & : 9 : 7 & - � 9 - 1 & 8 " " � " # 7 � 7 6 & $ K 1 " - 1 , 1 6 > , : " - 1 " & # 8 " - , 8 & $ J & # & # 8 " : 7 # " $ 7 " - 1 " 8 " 8 6 S 6 7 9 3 8 , 8 " ( � 8 " - 1 6 S 6 7 , # " # " J # & 8 9 � 6 # 2 & , $ J # 5 1 6 7 , $ 8 " J # & H # , : , < % & 1 " : > 6 - 8 & , $ " # # " 7 & - 4 " 7 6 8 & 7 & : & 8 , $ , 7 1 6 > 6 8 , 8 " $ : , 6 $ " S 6 7 , � " $ - & J # & 7 " $ $ & 8 " " - $ 6 - & M , J # " - 8 6 � , H " : 8 , J # & H # , : , < % & ( D " S , 7 1 & K J # & H # , : , # � 8 , & # 8 " : 8 " 7 & : 9 - 6 7 , # ( = & : 9 - 6 7 , # 7 & : , : 5 � 9 6 - , K : , $ S 9 - 8 , : " - 1 , 3 : " - 1 " 7 & : 9 - 6 7 , # " - 1 # " J # & H # , : , 8 & # " $ ( P , 2 " # 3 " # 7 I 8 6 H & " 6 8 " - 1 6 S 6 7 , # 7 I 8 6 H & 8 " � � � ffi fi � fi � � � 9 " J & $ $ , $ " # # " @ 9 1 6 3 6 � , 8 & � 9 , - 8 & - " 7 " $ $ 5 # 6 & K 1 & # - , @ $ " , $ $ 6 : 1 % & 6 : J & # 1 , - 1 " 7 & : & $ , 2 " # " $ 7 # " > " # 7 I 8 6 H & ( ? & $ " H 9 6 # : & $ 9 : , , 2 & # 8 , H " : J # , H : 5 1 6 7 , 9 $ , - 8 & 6 - 1 " - $ 6 > , " " � 1 " - $ 6 > , : " - 1 " " � " : J 3 & $ 8 " 2 & , $ J # 5 1 6 7 , $ 8 " J # & H # , : , < % & " : = " $ J " # , : & $ " $ 1 , # 7 & - 1 # 6 2 9 6 # J , # , & $ 9 7 " $ $ & 8 " $ 1 " J # & 7 " $ $ & 8 " " - $ 6 - & M , J # " - 8 6 � , H " : ( � � � � � � � � � � � � ? J # & H # , : , < % & " " $ 1 # 9 1 9 # , 8 " 8 , 8 & $ " : = � 9 : 1 " : , # " 3 , 1 6 > , : " - 1 " : , 8 9 # & 7 & : , J 3 6 7 , < � " $ " : > , # 6 , 8 � $ $ 6 : , $ 5 # " , $ 8 , " - H " - 4 , # 6 , 6 - S & # : 5 1 6 7 , K 8 , 6 - S & # : 5 1 6 7 , 8 " H " $ 1 % & " 8 & $ 7 & : J 9 1 , 8 & # " $ " : H " # , 3 ( 0 - 7 & - 1 # , : & $ , J 3 6 7 , < � " $ 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ " : 5 # " , $ � 9 " > % & 8 " $ 8 " & $ $ 6 $ 1 " : , $ & J " # , 1 6 > & $ K , & $ 7 & : J 6 3 , 8 & # " $ K " 6 - 1 " 3 6 H � - 7 6 , , # 1 6 S 6 7 6 , 3 ( D " $ 1 " � � � � �� � � � �� � � � � � � � � � � � � � � J & - 1 & 8 " > 6 $ 1 , K " 8 , 8 & & 7 & - 1 " � 8 & " , , 2 & # 8 , H " : J # , H : 5 1 6 7 , $ " H 9 6 8 , K & 3 6 > # & � 6 - 1 " # " $ $ , - 1 " J , # , 9 : , , : J 3 , , 9 8 6 � - 7 6 , L " - H " - 4 " 6 # & $ K 6 - S & # : 5 1 6 7 & $ K " $ 1 9 8 , - 1 " $ " 8 & 7 " - 1 " $ 9 - 6 > " # $ 6 1 5 # 6 & $ K : , $ 1 , : 2 � : , & 9 1 # & $ J # & S 6 $ $ 6 & - , 6 $ � 9 " � 9 " # " : , 7 1 9 , 3 6 � , # & $ $ " 9 $ 7 & - 4 " 7 6 : " - 1 & $ - & � : 2 6 1 & 8 " 9 : J # & H # , : , 8 " , J # " - 8 6 � , H " : , & 3 & - H & 8 , > 6 8 , K " , & , 9 1 & @ 8 6 8 , 7 1 , � 9 " � 9 " # , J # " - 8 " # , 8 " $ " - > & 3 > " # & $ $ " 9 $ J # & H # , : , $ 8 " 9 : , S & # : , $ 6 : J 3 " $ : , $ $ 6 $ 1 " : 5 1 6 7 , ( ? & # H , - 6 � , < % & 8 & 7 & - 1 " � 8 & 1 & # - , & 3 6 > # & , 7 " $ $ � > " 3 , & - & > 6 < & " : J # & H # , : , < % & : , $ 1 , : 2 � : , & 3 " 6 1 & # " - > & 3 > 6 8 & 4 5 : 9 6 1 & - & 8 " $ " - > & 3 > 6 : " - 1 & 8 " J # & H # , : , $ ( � � � � � � � � � � � � � C 1 " � 1 & 8 & 3 6 > # & � " $ 7 # 6 1 & " : � 6 : " $ B " � � & : , - ( C 7 I 8 6 H & = � " $ 7 # 6 1 & " : Arial Narrow K 7 & : & " : #include <stdio.h> /* Primeiro programa. */ int main() { printf(“Olá mundo!”); return 0; } C $ 7 & : " - 1 5 # 6 & $ , & 7 I 8 6 H & $ % & " $ 7 # 6 1 & " : G & # 1 9 H 9 � $ ( G & # 9 : , � 9 " $ 1 % & 8 " 9 - 6 S & # : 6 8 , 8 " K 1 & 8 & $ & $ 6 8 " - 1 6 S 6 7 , 8 & # " $ � - & : " $ 8 " > , # 6 5 > " 6 $ K S 9 - < � " $ K " 1 7 ( � $ % & " $ 7 # 6 1 & $ " : � - H 3 � $ ( G , # , , 3 � : 8 & $ " 3 " : " - 1 & $ H # 5 S 6 7 & $ 8 " : & 8 " 3 , < % & 7 & : & & $ 8 6 , H # , : , $ 8 " " $ 1 # 9 1 9 # , & 9 S 3 9 � & H # , : , $ K 9 1 6 3 6 � , @ $ " , 7 , 6 � , 8 " 1 " � 1 & 7 & : 3 6 : 6 1 " $ , J # " 1 & J , # , 6 8 " - 1 6 S 6 7 , # & $ " 3 " : " - 1 & $ 8 " $ 6 - 1 , � " 8 , 3 6 - H 9 , H " : ( � � � � �� � � � �� � � � � � � � � � � � � � � � � � � fi � fl � � � � ffi � � � � ? & $ : " 9 $ , 3 9 - & $ J " 3 & $ " 9 " $ 1 � : 9 3 & J " # : , - " - 1 " ( ? & $ 7 & 3 " H , $ 8 & D " J , # 1 , : " - 1 & 8 " 0 - H " - 4 , # 6 , 0 3 " 7 1 # I - 6 7 , " � - S & # : 5 1 6 7 , 8 , R , 7 9 3 8 , 8 " 8 " = 6 � - 7 6 , $ " � " 7 - & 3 & H 6 , 8 , A - 6 > " # $ 6 8 , 8 " 8 & ? 3 H , # > " � 9 " 7 & : 6 H & 1 � : 3 " 7 7 6 & - , 8 & 8 6 $ 7 6 J 3 6 - , $ K & - 8 " , $ : , 1 � # 6 , $ , H & # , , J # " $ " - 1 , 8 , $ 1 � : > 6 - 8 & , $ " # 3 " 7 7 6 & - , 8 , $ ( 0 : J , # 1 6 7 9 3 , # H & $ 1 , # 6 , 8 " , H # , 8 " 7 " # G , 9 3 , ! " - 1 9 # , J " 3 & $ " 9 , J & 6 & - , " 3 , 2 & # , < % & 8 , J # 6 : " 6 # , > " # $ % & " 3 " 7 1 # I - 6 7 , 8 & $ , J & - 1 , : " - 1 & $ 8 , 8 6 $ 7 6 J 3 6 - , G # & H # , : , < % & � � ( � " 7 & - 4 " < & 6 H 9 , 3 : " - 1 " & $ : " 6 & $ " & , : 2 6 " - 1 " J # & J � 7 6 & # " S 3 " � , < % & J # & J & # 7 6 & - , 8 & $ J " 3 , A - 6 > " # $ 6 8 , 8 " 8 & ? 3 H , # > " " J " 3 & 9 , 3 H @ 6 3 , 2 L � 4 " A , 3 H � - S & # : , 1 6 7 $ ; , 2 ( � � � � �� � � � �� � � � � � � � � � � � � � � 1. Introdução A : , 3 H & # 6 1 : & 7 & # # " $ J & - 8 " , 9 : , S & # : , 8 " # " $ & 3 > " # 9 : J # & 2 3 " : , ( � , 6 $ 7 & - 7 # " 1 , : " - 1 " K 9 : , 3 H & # 6 1 : & � 9 : 7 & - � 9 - 1 & S 6 - 6 1 & $ 8 " 6 - $ 1 # 9 < � " $ J # " 7 6 $ , $ " & # 8 " - , 8 , $ � 9 " # " $ & 3 > " 9 : 8 " 1 " # : 6 - , 8 & J # & 2 3 " : , ( A : , 3 H & # 6 1 : & 8 " > " $ , 1 6 $ S , � " # 9 : 7 & - � 9 - 1 & 8 " J # & J # 6 " 8 , 8 " $ 7 & : & L ' ( D " > " 1 " # : 6 - , # - 9 : 7 & - � 9 - 1 & S 6 - 6 1 & 8 " J , $ $ & $ � S 6 - 6 1 9 8 " � � E ( = , 8 , J , $ $ & 1 " : � 9 " $ " # J # " 7 6 $ , : " - 1 " 8 " S 6 - 6 8 & � 8 " S 6 - 6 1 9 8 " � � Q ( = , 8 , J , $ $ & 8 " > " $ " # $ 9 S 6 7 6 " - 1 " : " - 1 " $ 6 : J 3 " $ � " S 6 7 5 7 6 , � � U ( D " > " # " $ & 3 > " # & J # & 2 3 " : , " : 1 " : J & � 1 6 3 J , # , � 9 " , $ & 3 9 < % & J # & 8 9 � 6 8 , 1 " - 4 , 6 - 1 " # " $ $ " � " S 6 7 6 � - 7 6 , � � F ( � " : . & 9 : , 6 $ " - 1 # , 8 , $ " / ( � " : ' & 9 : , 6 $ $ , � 8 , $ ( B , # " $ & 3 9 < % & 8 " J # & 2 3 " : , $ 9 $ , : & $ , 3 H & # 6 1 : & $ 7 9 � & 8 " $ " : J " - 4 & J & 8 " 8 " J " - 8 " # � " : 9 6 1 &� 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ � 9 " 9 1 6 3 6 � , : ( � 8 & - & $ $ & 6 - 1 " # " $ $ " 8 " $ " - > & 3 > " # , 3 H & # 6 1 : & $ " S 6 7 6 " - 1 " $ ( � 9 6 1 , $ > " � " $ K , � - 6 7 , 4 6 J I 1 " $ " � 9 " 1 " # " : & $ 8 " " - 7 & - 1 # , # 9 : , $ & 3 9 < % & J , # , 9 : 7 " # 1 & J # & 2 3 " : , " $ 1 5 - , 9 1 6 3 6 � , < % & 8 " , 3 H & # 6 1 : & $ " S 6 7 6 " - 1 " $ ( A : , " $ 1 # 9 1 9 # , 8 " 8 , 8 & $ - % & � : , 6 $ 8 & � 9 " 9 : , S & # : , 8 " & # H , - 6 � , # > , 3 & # " $ # " 3 , 7 6 & - , 8 & $ " " : 7 9 � & $ " � " : J 3 & $ $ " 6 - 7 3 9 " : , $ : , 1 # 6 � " $ K , $ 3 6 $ 1 , $ K , $ 5 # > & # " $ " & $ H # , S & $ ( B & " $ 1 9 8 & 8 , $ " $ 1 # 9 1 9 # , $ 8 " 8 , 8 & $ , - & < % & 8 " 1 6 J & $ 8 " 8 , 8 & $ � 9 : , - & < % & 7 " - 1 # , 3 ( � � � � � � � � � � � � � � � � � � � � � � �� � � � �� � � � � � � � � � � � � � � ? : , 6 & # J , # 1 " 8 , $ 3 6 - H 9 , H " - $ 8 " J # & H # , : , < % & J # & J & # 7 6 & - , : J " 3 & : " - & $ 9 : 7 & - � 9 - 1 & : � - 6 : & 8 " 1 6 J & $ 8 " 8 , 8 & $ J # 6 : 6 1 6 > & $ & 9 J # � @ 8 " S 6 - 6 8 & $ K , $ $ 6 : 7 & : & , 7 , J , 7 6 8 , 8 " 8 " 7 & - $ 1 # 9 6 # - & > & $ 1 6 J & $ K & 9 1 6 J & $ 8 " S 6 - 6 8 & $ J " 3 & 9 1 6 3 6 � , 8 & # ( �� , $ , S 6 - , 3 & � 9 " � 9 : 1 6 J & 8 " 8 , 8 & $ � � A : 1 6 J & 8 " 8 , 8 & $ � 9 : 7 & - � 9 - 1 & 8 " > , 3 & # " $ " 9 : , 7 & 3 " 7 < % & 8 " & J " # , < � " $ $ & 2 # " " $ $ " $ > , 3 & # " $ ( 0 � " : J 3 & L C 1 6 J & 8 " 8 , 8 & $ int 7 & - $ 6 $ 1 " 8 & $ " H 9 6 - 1 " 7 & - � 9 - 1 & 8 " > , 3 & # " $ � . K � ' K @ ' K � E K @ E K ( ( ( K INT_MAX K INT � � � B � & - 8 " INT � MAX " INT � MIN # " J # " $ " - 1 , : & $ > , 3 & # " $ : 5 � 6 : & $ " : � - 6 : & $ 8 & $ 6 - 1 " 6 # & $ ( ? $ & J " # , < � " $ $ & 2 # " & $ int $ % & : 9 6 1 , $ " 6 - 7 3 9 " : & $ & J " # , 8 & # " $ , # 6 1 : � 1 6 7 & $ +, -, *, / " % K 1 " $ 1 " 8 " 6 H 9 , 3 8 , 8 " " 8 " $ 6 H 9 , 3 8 , 8 " K & J " # , < � " $ 8 " , 1 # 6 2 9 6 < % & K " 1 7 ( G & # � 9 " # , � % & , - & < % & 8 " 1 6 J & 8 " 8 , 8 & $ � 1 % & 6 : J & # 1 , - 1 " � 0 $ $ " - 7 6 , 3 : " - 1 " J & # 1 # � $ & # 8 " - $ 8 " # , � � " $ ( ' ( A : 1 6 J & 8 " 8 , 8 & $ J # & J & # 7 6 & - , 9 : , 6 - 1 " # J # " 1 , < % & J , # , & $ > , 3 & # " $ H 9 , # 8 , 8 & $ " : : " : I # 6 , � E ( ? � 9 8 , : , & # H , - 6 � , # " , 8 & 7 9 : " - 1 , # 7 & - 7 " 6 1 & $ � Q ( G & $ $ 6 2 6 3 6 1 , : � 9 " & 7 & : J 6 3 , 8 & # , � 9 8 " & J # & H # , : , 8 & # - , > " # 6 S 6 7 , < % & 8 , 7 & # # " 7 < % & 8 & $ " 9 7 I 8 6 H & ( 0 $ 1 " $ , $ J " 7 1 & $ $ " # % & 6 3 9 $ 1 # , 8 & $ 8 " $ " H 9 6 8 , ( � � � � � � � fl � ffi � � � � � ! , : & $ 7 & : " < , # J & # > " # & � 9 " , 3 6 - H 9 , H " : ? B P � = � S # " � 9 " - 1 " : " - 1 " # " S " # 6 8 , 8 , � 9 6 J , # , , S # " - 1 " $ 6 : J 3 " $ : " - 1 " J & # = @ - & $ & S " # " 7 " J , # , & # H , - 6 � , # " J # & 7 " $ $ , # 6 - S & # : , < % & ( 0 : = K , $ , 2 $ 1 # , 7 < � " $ 8 & : 9 - 8 & # " , 3 $ % & K " : � 3 1 6 : , , - 5 3 6 $ " K # " J # " $ " - 1 , 8 & $ J " 3 & $ 1 6 J & $ J # 6 : 6 1 6 > & $ 8 " 8 , 8 & $ L char K int, float, double ( 0 : = K 9 $ , : & $ 9 : - � : " # & S 6 � & 8 " 2 6 1 $ J , # , # " J # " $ " - 1 , # - � : " # & $ ( ? $ $ 6 : K & $ int $ % & J & # - " 7 " $ $ 6 8 , 8 " 6 - 1 " 6 # & $ � 9 " > 6 > " : 8 " - 1 # & 8 " 3 6 : 6 1 " $ " $ J " 7 � S 6 7 & $ � 9 " 8 " J " - 8 " : 8 & - � : " # & 8 " 2 6 1 $ � 9 " 9 $ , : & $ J , # , & $ # " J # " $ " - 1 , # ( � � � � �� � � � �� � � � � � � � � � � � � � � G , # , S , 7 6 3 6 1 , # , , J # " $ " - 1 , < % & K > , : & $ 7 & - $ 6 8 " # , # 9 : 7 & : J 6 3 , 8 & # 8 " = & - 8 " & $ 6 - 1 " 6 # & $ $ % & # " J # " $ " - 1 , 8 & $ 9 $ , - 8 & , J " - , $ Q 2 6 1 $ ( C $ > , 3 & # " $ J & $ $ � > " 6 $ J , # , " $ $ " $ Q 2 6 1 $ $ % & L . . . K . . ' K . ' . K . ' ' K ' . . K ' . ' K ' ' . " ' ' ' C $ 7 & : J 6 3 , 8 & # " $ 8 " = 9 $ , : & $ 6 $ 1 " : , 8 " - 9 : " # , < % & 2 6 - 5 # 6 & - , 1 9 # , 3 J , # , # " J # " $ " - 1 , # 6 - 1 " 6 # & $ $ " : $ 6 - , 3 K J " 3 & � 9 " L � ffi � � ffi � � � � ffi� � � . . . . . . ' ' . ' . E . ' ' Q ' . . U ' . ' F ' ' . / ' ' ' O G & # 1 , - 1 & K & - � : " # & 8 " 6 - 1 " 6 # & $ 8 6 S " # " - 1 " $ � 9 " J & 8 " # " : & $ # " J # " $ " - 1 , # 9 $ , - 8 & Q 2 6 1 $ � 8 , 8 & J & # E � � * ( 0 $ $ " $ 6 - 1 " 6 # & $ 7 & : " < , : " : . " > % & , 1 � E � @ ' � O ( 0 $ 1 " $ $ % & & $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & K & 9 , H , : , 8 " > , 3 & # " $ J & $ $ � > " 6 $ K J , # , 6 - 1 " 6 # & $ $ " : $ 6 - , 3 8 " Q 2 6 1 $ ( P " " : > " � 8 " Q 2 6 1 $ 1 6 > " $ $ " : & $ * K " - 1 % & J & 8 " # 6 , : & $ # " J # " $ " - 1 , # E � � E F / > , 3 & # " $ 8 6 S " # " - 1 " $ " , H , : , 8 " > , 3 & # " $ $ " # 6 , 8 " . , E � @ ' � E F F ( B & 7 , $ & H " # , 3 K J , # , 9 : 7 & : J 6 3 , 8 & # 8 " n 2 6 1 $ K ffi � � ( K J , # , 9 : 7 & : J 6 3 , 8 & # � 9 " # " J # " $ " - 1 " 6 - 1 " 6 # & $ 9 $ , - 8 & n 2 6 1 $ K " � 6 $ 1 6 # % & E n 6 - 1 " 6 # & $ 8 6 S " # " - 1 " $ K $ " - 8 & & $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & . " E n @ ' ( C � 9 " > 6 : & $ � > 5 3 6 8 & J , # , 6 - 1 " 6 # & $ $ " : $ 6 - , 3 ( ? # " J # " $ " - 1 , < % & 8 " 6 - 1 " 6 # & $ 7 & : $ 6 - , 3 � S " 6 1 , 9 $ , - 8 & , � 9 6 3 & , � 9 " $ " 7 4 , : , # " J # " $ " - 1 , < % & " : 7 & : J 3 " : " - 1 & J , # , E ( � � � � �� � � � �� � � � � � � � � � � � � � � ! & 3 1 " : & $ , & - & $ $ & 7 & : J 6 3 , 8 & # 8 " Q 2 6 1 $ ( C $ > , 3 & # " $ J & $ $ � > " 6 $ J , # , " $ $ " $ 1 # � $ 2 6 1 $ 7 & - 1 6 - 9 , : , $ " # & $ : " $ : & $ L . . . K . . ' K . ' . K . ' ' K ' . . K ' . ' K ' ' . " ' ' ' ( 0 : 7 & : J 3 " : " - 1 & J , # , E K & 2 6 1 : , 6 $ " $ � 9 " # 8 , - & - � : " # & � & 9 & 2 6 1 : , 6 $ $ 6 H - 6 S 6 7 , 1 6 > & � � 9 $ , 8 & J , # , 6 - 8 6 7 , # & $ 6 - , 3 8 & - � : " # & ( P " " $ $ " 2 6 1 S & # . " $ 1 , : & $ - , J # " $ " - < , 8 " 9 : - � : " # & J & $ 6 1 6 > & � $ " " $ $ " 2 6 1 S & # ' 1 " # " : & $ 9 : - � : " # & - " H , 1 6 > & ( B � : " # & $ J & $ 6 1 6 > & $ 7 & : " < , : J & # . " & $ # " $ 1 , - 1 " $ 2 6 1 $ # " J # " $ " - 1 , : & > , 3 & # , 2 $ & 3 9 1 & 8 & - � : " # & ( B � : " # & $ - " H , 1 6 > & $ 7 & : " < , : J & # ' K $ " - 8 & & $ " 9 > , 3 & # , 2 $ & 3 9 1 & � 8 , 8 & J " 3 , 8 6 S " # " - < , " - 1 # " , � 9 , - 1 6 8 , 8 " 8 " - � : " # & $ � 9 " $ " 7 & - $ " H 9 " : # " J # " $ " - 1 , # 7 & : & - � : " # & 8 " 2 6 1 $ # " $ 1 , - 1 " $ " & > , 3 & # " : 2 6 - 5 # 6 & - , 1 9 # , 3 # " J # " $ " - 1 , 8 & J & # " $ $ " $ : " $ : & $ 2 6 1 $ ( � ffi � � � � � � � � � � � � ff � . . . � . . . ' � ' . ' . � E . ' ' � Q ' . . @ U @ . � U ' . ' @ U @ ' � Q ' ' . @ U @ E � E ' ' ' @ U @ Q � ' ? $ $ 6 : K " : 2 & # , 9 : 6 - 1 " 6 # & 7 & : $ 6 - , 3 K # " J # " $ " - 1 , 8 & 9 $ , - 8 & Q 2 6 1 $ K 1 " - 4 , , 6 - 8 , E � � * > , 3 & # " $ J & $ $ � > " 6 $ K & $ $ " 9 $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & $ % & L @ � E � � � @ U " E � @ ' � Q ( P " 1 6 > " # : & $ * 2 6 1 $ " - 1 % & , H , : , 8 " > , # 6 , < % & > , 6 8 " � � E � � � @ ' E * , E � @ ' � ' E O ( B & 7 , $ & H " # , 3 K 9 : 6 - 1 " 6 # & 7 & : $ 6 - , 3 # " J # " $ " - 1 , 8 & 9 $ , - 8 & n 2 6 1 $ 1 " # 5 E n > , 3 & # " $ 8 6 S " # " - 1 " $ " 9 : , H , : , 8 " > , # 6 , < % & � 9 " > , 6 8 " � � E � � � � , E � � � @ ' ( A : , : , - " 6 # , 8 " $ , 2 " # : & $ � 9 , 6 $ $ % & & $ 3 6 : 6 1 " $ 8 " > , # 6 , < % & J , # , & $ 6 - 1 " 6 # & $ - & 7 & : J 6 3 , 8 & # 8 " = � 9 " " $ 1 , : & $ , 9 $ , # � # " 7 & # # " # $ : , 7 # & $ 8 " S 6 - 6 8 , $ - & S 6 7 4 " 6 # & 8 " 7 , 2 "< , 3 4 & limits.h. G , # , & $ 6 - 1 " 6 # & $ K " $ $ " $ 3 6 : 6 1 " $ $ % & 8 , 8 & $ J & # L INT � MIN " INT � MAX ( � � � � �� � � � �� � � � � � � � � � � � � � � 0 : = - " H & 7 6 , : & $ " $ J , < & " J # " 7 6 $ % & " $ 7 & 3 4 " - 8 & " - 1 # " char, int, long int � " " - 1 # " float, double ou long double � ( � ! , 3 & # " $ 1 � J 6 7 & $ J , # , , 3 H 9 - $ 1 6 J & $ " : 7 & : J 6 3 , 8 & # " $ 8 " ' / 2 6 1 $ � � � # � � � � � � ffi � � � � � � � � fl � � � � 7 4 , # * 2 6 1 $ . , E F F $ 4 & # 1 " 6 - 1 ' / 2 6 1 $ @ Q E O / * , Q E O / O 9 - $ 6 H - " 8 $ 4 & # 1 " 9 - $ 6 H - " 8 6 - 1 ' / 2 6 1 $ . , / F F Q F 3 & - H Q E 2 6 1 $ @ E ' U O U * Q / U * , E ' U O U * Q / U O 9 - $ 6 H - " 8 3 & - H Q E 2 6 1 $ . , U E T U T / O E T F S 3 & , 1 Q E 2 6 1 $ � J # " 7 6 $ % & O 8 � H 6 1 & $ � S & 9 2 3 " / U 2 6 1 $ � J # " 7 6 $ % & ' F 8 � H 6 1 & $ � 3 & - H 8 & 9 2 3 " * . 2 6 1 $ � J # " 7 6 $ % & ' T 8 � H 6 1 & $ � ! 6 : & $ J & # 1 , - 1 & � 9 " # " J # " $ " - 1 , < � " $ 6 H 9 , 6 $ $ 6 H - 6 S 6 7 , : K " : H " # , 3 K 7 & 6 $ , $ 8 6 S " # " - 1 " $ J , # , 1 6 J & $ 8 6 S " # " - 1 " $ ( ! " � , : & $ , H & # , 7 & : & & $ 1 6 J & $ 8 " 8 , 8 & $ - & $ , � 9 8 , : , & # H , - 6 � , # " , 8 & 7 9 : " - 1 , # 7 & - 7 " 6 1 & $ ( A : � � � J # & H # , : , � & # H , - 6 � , & $ 8 , 8 & $ # " 3 , 7 6 & - , - 8 & @ & $ 7 & : & $ 7 & - 7 " 6 1 & $ 8 & J # & 2 3 " : , " : # " $ & 3 9 < % & ( G & # " � " : J 3 & K 9 : " 8 6 1 & # H # 5 S 6 7 & & # H , - 6 � , & $ $ " 9 $ 8 , 8 & $ 8 " S & # : , , � 9 " # " J # " $ " - 1 " : J & - 1 & $ K 3 6 - 4 , $ " S 6 H 9 # , $ H " & : � 1 # 6 7 , $ ( A : , & # H , - 6 � , < % & 8 " 8 , 8 & $ 8 " $ 1 " 1 6 J & 1 & # - , & J # & H # , : , : , 6 $ 3 " H � > " 3 K ffi � � � K : , 6 $ S 5 7 6 3 8 " 7 & : J # " " - 8 " # " : , 6 $ S 5 7 6 3 8 " : , - 1 " # K ffi � � � K 8 " " $ 1 " - 8 " # & 9 : " 3 4 & # , # ( G & # " � " : J 3 & K 7 & - $ 6 8 " # " : & $ � 9 " " : > " � 8 " 6 : J 3 " : " - 1 , # : & $ & " 8 6 1 & # H # 5 S 6 7 & 7 & : J 3 " 1 & � , J " - , $ - " 7 " $ $ 5 # 6 & 7 , 3 7 9 3 , # 8 6 $ 1 � - 7 6 , $ � " 9 7 3 6 8 " , - , $ � " - 1 # " J & - 1 & $ 8 & J 3 , - & ( � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ff � fi � � fl � fi ffi � � � � � � � � � � � � � � � � � � � � fi � � � � � � � � � � ! " # $ " % � & � � fi � � � � � � � � � � ! ' # $ ' % ( � � � � � � � ) * *+ * *+ , - , - .. // 0 −+−= 1 � 2 � � � � 2 � � � � � 3 � � � � 4 � 2 5 2 � � � � � � 3 � � 5 � � � � � � � 2 � � � � � � � � � � � � � � � � � � � 6 � ffi 6 � � � � � 4 � � � � � � � � 4 � � 2 � ) int main() { float a, b, c, d; printf("Abssissa do ponto A:"); scanf("%f", &a); /* ... */ printf("dist: %f \n", dist(a, b, c, d)); return 0; } � � � � � 7 � � 8 � � dist � � � � � � � � � � 2 � ffi � 2 � � � � � � � � � � 4 � � � � � 7 � � 2 � ) double dist(float x, float y, float z, float t) { float dx = x - y; float dy = z - t; return sqrt(dx * dx + dy * dy); } � 2 � � � sqrt ( � 7 � � 8 � � � � � fi � ffi fi � ffi � � � � � 9 � � � � � � � � � � � � � � � 7 � � � � � � � ffi � 6 � � � � � math.h � � �� � � � �� � � � � � � � � � � � � � � � � 2 � � � � 2 � � � � � 3 � � � 6 � 8 � � ( � � � � � � � 2 � � � � � � � 2 � � � � fi � � � � � � fi � 2 � 7 � � 2 � fi � 2 � fi � � 2 � 2 � � � 7 � � 8 � � dist 5 � � � � � � � 2 � � � � � � � � � � � � � � 6 � ffi 6 � � � � � � ffi � � � � fi � � � � fi � � � � � 7 � fi � � 5 � � � � � ff 2 � � � � � x � y � � � � � � � � fi � � � � � � � � � � � � � � 3 � � � � � � � � � � � � � � � � � � � � � � � � z � t � � 2 � � � fi � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ( � 6 � � � � � � � � fi � � � 4 � � � � � 2 � � � � � � � � � � fi � � fi ffi � � � � � � � ffi � 4 � 3 � ffi � � � � � � � � � � fi � � � 4 � � � � � 2 � � � � � � � � � � � � � 2 � � � 4 � � 2 � � � � � 7 � fi � � � � � � � 2 � � 2 � � � � � 7 � � � � � 2 � ffi � � � � � � � � 6 � ffi 6 � � � � � � � � � � � � 9 � � 2 � � � 2 � � 6 � � � � � � � � � � � � � � � � � � � � � � � � � � fi � � fi � � � � � � � � � � � � fl � � � � 3 � � � 6 � 8 � � ffi � 6 � � � � � � � � � � � � � � � � � 7 � � � 8 � � � � � � 6 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ff fi � � fl � � � ffi � � fl � � � fl fi � � ! " # $ " $ # % % & # ! & % ' ( ) $ % & # $ * % ' + , % , ) - ! . ! / " $ % 0 ' ! / " ! , ! " 1 * ) , 1 2 ! # ! / " ! - 3 $ ! * ) , ! ' ! # ' % / 1 * $ 0 % , ) 4 ) ' ) $ ' % $ / 1 , % , ! - 5 6 7 6 - 4 ) ' $ ' / ) ' ! 4 ) ' $ ' - ' % 3 $ ! * ) , ! ' ) % 1 / , % # ! 2 ! # 1 # % 4 % , % 4 ) ' * ) / ! / " ! 1 / , 1 . 1 , $ % 0 , ! $ ' 4 ! # " ) , % , ) * ! 0 ) / ) ' ! 8 � 4 % , % 4 ) ' * ) / ! / " ! 1 / , 1 . 1 , $ % 0 4 9 % ' % # ! ' ) ' ! ' : # ) , ! , % , ) 8 � ; / 1 4 % ) * ! # % < = ! 3 $ ! ! " > ) , ! 2 1 / 1 , % * % # % % ! " # $ " $ # % > ) ) % 4 ! ) % ' ! ' : # ) - % 4 ? * 1 % ! % % " # 1 : $ 1 < > ) 8 @ ) , ! ' ) $ % # % ! " # $ " $ # % * % # % , ! 2 1 / 1 # $ ' " 1 * ) , ! , % , ) 3 $ ! # ! * # ! ! / " ! * ) / " ) A struct point { float x; float y; }; ! ! 4 # ! . ! # A struct point A, B; � � � � �� � � � �� � � � � � � � � � � � � � � A.x=1.0; A.y=1.0; B.x=4.0; B.y=2.0; � ) ' ) % ) * ! # % < > ) , ! 4 ? * 1 % ! " � , ! 2 1 / 1 , % * % # % % ! " # $ " $ # % - * ) , ! ' ) * % % # , 1 # ! 4 " % ' ! / " ! ! " # $ " $ # % 4 ) ' ) % # & $ ' ! / " ) , ! 2 $ / < = ! 8 @ ) # ! � ! ' * 0 ) A double dist(struct point p, struct point q) { float dx = p.x - q.x; float dy = p.y - q.y; return sqrt(dx * dx + dy * dy); }; � 0 " ! # / % " 1 . % ' ! / " ! * ) , ! # � % ' ) " ! # $ % , ) % * % 0 % . # % � 4 9 % . ! typedef * % # % 1 / 2 ) # ' % # ) 4 ) ' * 1 0 % , ) # , ! 3 $ ! 3 $ ! # � % ' ) 4 # 1 % # $ ' / ) ' ! * % # % ) / ) . ) " 1 * ) ! % 1 ' 2 % 4 1 0 1 " % # % ! 4 # 1 " % 8 � typedef " ! ' % ! & $ 1 / " ! 1 / " % � ! A typedef <tipo elementar ou estruturado> <novo identificador> � � ! ' * 0 ) A typedef int Number; � ) 4 % ) , % ! " # $ " $ # % point " ! # 1 % ' ) - typedef struct { float x, y; } point; ! * ) # " % / " ) * ) , ! # � % ' ) " ! # ! 4 # 1 " ) % 2 $ / < > ) % / " ! # 1 ) # , % ! & $ 1 / " ! 2 ) # ' % A double dist( point p, point q) { /* … como antes … */ }; � ) " ! � ! 3 $ ! ) typedef / > ) 1 / " # ) , $ � $ ' / ) . ) " 1 * ) ff fi % * ! / % $ ' 1 / ? / 1 ' ) ( ) $ $ ' % % : # ! . 1 % " $ # % + , ! $ ' " 1 * ) 3 $ ! * ) , 1 % ! # ! * ! 4 1 2 1 4 % , ) , ! ) $ " # % 2 ) # ' % 8 � * # ) & # % ' % 4 ) ' * 0 ! " ) ! # 1 % � � � � �� � � � �� � � � � � � � � � � � � � � #include <stdio.h> #include <math.h> typedef struct { float x, y; } point; double dist( point, point); int main() { point a,b; printf("Primeiro ponto:"); scanf("%f", &a.x); /* ... */ printf("dist: %f \n", dist(a,b)); return 0; } double dist(point p, point q) { float dx= p.x - q.x; float dy=p.y - q.y; return sqrt(dx * dx + dy * dy); }; � % " $ # % 0 ' ! / " ! 3 $ ! / % , % / ) 1 ' * ! , ! , ! % & # $ * % # ' ! ' : # ) , ! , % , ) 3 $ ! ! � % ' ! 0! * # ? * # 1 ) ! " # $ " $ # % 8 � � ! ' * 0 ) A typedef struct circle{ point center; float radius; } /* ou o que é a mesma coisa: */ typedef struct{ point center; float radius; } } } � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � ff fi � � � fl � � � � � � � � � � � � � � � � � point. ffi � � ! " � # � � � � � � $ % # � $ � � � � & ' " � � � � �� � � � �� � fl � � � � � � � � � � � � � } circle; � � � � � � � � � � � � � � � � � � � � � � � � ff � fi fl � � ffi � � � � � ff � ff � � � � � � � � � � � ffi � � � � � ff � ff � � � � � � � � � � � ! ff " fi fl � � # � � � " � � " � � $ " % � � � � � � � � � � � � ! � & � fi % � ffi � � � ff � ffi � ffi � � ff ffi � � � � ff � ffi � ffi � # � � � � � � " � � ffi � & ' ffi � � � � � � ff � " � � ( circle aCircle, bCircle; aCircle.center.x = 0.0; aCircle.center.y = 0.0; aCircle.radius = 1.0; bCircle = aCircle; /* OK*/ � � � ) � � � * ff � ffi � ! � " � � ff � ! ff " fi % � � � � � � � � � ! � & � � � � � � ffi ff � � � � � � ff � ff � � � � ff � � ffi � � � � � � � � � ff � � � # + � ff � ( • , � � � � � ff � ff � � � ff � � ffi � $ � � � � � � � � � " � � $ ff � & � � & fi % � ffi � � � � � � � - � � � " � ff � � " � � . ffi � � � � � � ffi � ! � � � " � � � / • + � � � � $ � � � � � � ff � ff � � � ! ff " & � � " � & � � * ff � * ff � � � � � � � 0 � � & � # 1 � � � � ) � � � � � � � � � 2 � � ffi � � � � � ff � ff � � � $ � � " � � � � � � � � � � � � � � ff � ff � � � $ � � & # • � � ffi � � � � � ff � ff � � ffi � ! � " � ff � � � � fi � ffi � " � � � � � ' � � � � # � % � 3 � � � � ) � � � � � � ffi � ! � " � fi % � ffi � ff � � � � � ff � ff � � & � � � � � � ffi � � � � � ' � � � � # 4 5 6 5 7 5 8 9 : ; < = > ff � � � ! � � � ffi � ffi � ! � " � � ff " � � � � � � � ffi � ffi � ffi � � & � " � � � � � � ff � � � 2 � � ff " � fl � � # ? � � � * ff � ! � * ff � & � � � � ffi � ! � � � " fi � � " � � � ff � � � � � ff � ff � � � ff � ff " � % � � � � � � � � & � � 3 * ff � ff � � � ff � � � � % � � � � � � � � " � � ffi � � � � ' � � � # � � � � �� � � � �� � fl � � � � � � � � � � � � � � ? � � � � ! � � � � � ffi � � � � � � � " � � fi % � � � � � & � " � � ffi � � � � * ff � � � � � � � � � ffi � � & � ff & � � � � ffi � � ffi � � � � � � � $ � � � � 3 $ � � � � & � " � � ffi � � � � * ff � ff char � & ff � � � � � � � - � � � � � . � ff int � & ff � � � � � � � � # � ff � " ffi � ffi � ! � " � � � � � � � � ff � ff � � struct s { int i,j; }; � � � � � & � " � � � ffi � ffi � i � � ffi � � � � � " � � � � � ff � ffi � ffi � & � " � � � ffi � ffi � j # > � � � � � � ffi � ff � � � � � ff � ff � � � � � " ffi � � � fi � � & � � � & � " � � � & � � � ff � � � ffi � ffi � ffi � & � � � fi % � # ? � � � � 2 � � $ � � ffi � � � � � � � * ff � ffi � � � $ � ff � � � $ � � � � � ffi � ffi � ffi � � ffi � ff � � � � � ff � ff � � � � � � � � � � � � 0 � � � ffi � � ' � � � # ? � � � � � � � � & � � � � $ � � � � � � � � ff � � � ff " � fl � � # � ffi � & � � � fi % � ffi � ff � ff " � % � 3 � � � � " � � ffi � ff � � � � � ff � ff � � # + � � � � ( union u { char lowbyte; int word; }; � � � � �� � � � �� � fl � � � � � � � � � � � � � � � � � � � � � � � � $ * ff � � � char lowbyte $ * ff � � � � " � � � � � word & � � fi � � � � � � � � 2 � " � ffi � � � � � � � � � ffi � � � � � � � � fi % � ffi � � ' � � � # � � � ff � � � " � � * ff � $ " � � � � & � � � $ � � � � � � lowbyte � � � � � word � � � � � � � word $ � � � � � lowbyte # � � � � � � ff � � � � � ( union u aUnion; aUnion.word=0x105; /* 105H = 261D */ printf("%d", aUnion.lowbyte); > � � � ff � � ffi � � � � � � ( � � � 0 * ff � � � ' � � � � � � � � � � + � � * ff � � 3 � � � � � � & � ffi � � � " ffi � � � " ffi � " � � � " � � * ff � � � � lowbyte $ * ff � � � � highbyte� , � � " � � � � � � � � � ( typedef struct { unsigned char low, high; } lhbytes; � � � � �� � � � �� � fl � � � � � � � � � � � � � typedef union { lhbytes byte; int word; } bytesword; + � � � � � " � � ( bytesword bw; bw.word =261; printf("%d %d \n", bw.byte.low, bw.byte.high); � � � � ff � � ffi � � � � � � � � # + " * ff � " � � * ff � ( bytesword bw; bw.byte.low =5; bw.byte.high =1; printf("%x \n", bw.word); � � � ffi ff 2 � � � � ( � � � � + � ff � ( • , � ff " � % � � � ffi � � � � � � � � � & � � ff � � � � � ff � ff � � � * ff � � � ffi � � � � � � � � � � � �� � � � � 2 � � � $ � � � � � � � � " � � � � � " ffi � � � fi � � � � � $ � # � # $ � � ffi � � � � � � � � � & � � fi � � � � � � ff � � ffi � ffi � � � � � � � � � ffi � � � � � " ffi � � � fi � � " � & � � # • � ff " � % � � � � 0 � ff ! � & � � " � � � " � � � � � " ffi � � � � � & � " � � � � � � � � ffi � � � � ff � � � � � � ffi � ffi � ffi � � - � " & ff � " ffi � � � � " � � " � � � � � � � � � � ffi � ffi � � � ffi � � � � � � � � � . # > � � � � � � " � � * ff � ffi � & � � � � ffi � ff � � � 2 � fi % � ffi � � � � � � $ * ff � ! � � � � ff � � � � � 3 � * ff � � ! � � � * ff � � � � � � ! � � " � & � � " ! � � � fi % � � � & � � � � ffi � � � & � � & � ffi � � ffi � ffi � � � " � � ff � ffi � � � � � � � � � � � � � & � � � � � $ � & � � � � ffi � � � � � � � � � � ffi � � � � ff ffi � � � � � � � � � � ffi � � " � � � � � ! � & � fi % � ffi � & � � � � & fi % � ffi � � � ff & ' ffi � � � # � � � � � � � ffi � � ffi � � � � � � 0 ! � & � $ � & � � � � ffi � � � � ffi � � � � � ! � & � � � � � � � � � fi fl � � � � � � �� � � � �� � fl � � � � � � � � � � � � � � ffi � � � � � " & � � " � � & � & � � � � � % � & � � � � & � � � " � � � � � & � ffi � � � ! � � ff � � � � � � 3 � � � & � � ! � & � ffi � � � " % � � � ff � � � � � " � � ffi � ffi � � $ & � � � � � � " � � � # 4 5 � 5 � � < � � � � : � = � # � � � � " � � � � ff � � � � � � � * ff � � � & � � � � � � � ff " � � " � � & � % # � # � � � � " � � � � ff � � � � � � � * ff � � � � � � � ff " � � & � � � � � � � � & � � � � � � � ff � � � " � & � � � � " � � & � % # � # + � & � � � � ff � � � � � � � � � * ff � � � � � � � � � � � � � � " � � " � � � � * ff � � � � � ffi � � � � � � � � " � � � " � � � � � " � � ffi � � � � � � � � fi % � * ff � � � � 0 � ff � � � $ � & � ffi � ff ffi � � � � � ff � " � � � � � � � � ( � . � " � ffi . ff " � � � " � ffi & � � � . � " � � " � � . ! � � � & . � � � � � " � ! . ffi � ff � � # + � & � � � � ff � � � � � � � � � * ff � � � � ff " � � � � � " � � � � � � � � � * ff � � � � � � � � � � � � ffi � � � � � ffi � & � � # # � � " � � ffi � � � � � � � ff � " � � � � � � � � � # #include <stdio.h> #include <string.h> #include <ctype.h> #define COMPMAX 128 typedef struct {int letras, espacos, palavras;} contador; int main() { char dentro=0, texto[COMPMAX]; int i; fgets(texto,COMPMAX,stdin); for (i=0; i<strlen(texto); i++) { if (!dentro && !isspace(texto[i])) { dentro=1; printf("%c",texto[i]); } � � � � �� � � � �� � fl � � � � � � � � � � � � �� else if (dentro && isspace(texto[i])) { dentro=0; } } /* printf("\n%d %d %d \n", c.letras, c.espacos, c.palavras); */ return 0; } � . + � � � * ff � � * ff � � � � � � � � � ! � 2 # � . � � � � � � � � � � � � � ffi � ! � � � � & � " � � � � " � � � � ffi � � � � � � $ � � � � fi � � � � � � � � � � # & . � � � � � � � � � � � � � ffi � ! � � � � & � " � � � � ! � � * ff � " & � � - � � � � & � " � � � � . ffi � & � ffi � � � � � # � � � � � � � � � � � � � � � ffi � ! � � � * ff � � � " � � � ffi � � � � � � � � � � ! � � � � � � � � � 3 � ffi � ff ! � & � � � � ffi � � � � � � � � � � � �� � � � �� � fl � � � � � � � � � � � � � � 2. Arrays e Ponteiros � � & � � ) � ff � � " � � � � � � ffi � � � " � � � � � � ff � � � � � � � � � � � & � & ff � � ffi � � � � " & � � � � " � � � � � � " � � � ffi � � � " � - ℜ � . # � � � � � 2 ffi � ℜ � � � " � � � � � � � " � � � � � � � � " & � � � � � ℜ� & � ffi � � � " � � � � � � � � � � � � � � " � � ffi � � � � n & � � � ffi � " � ffi � � # � � * ff � � � � � � � � � � � � ffi � � � � " & � � - � ff & � ffi � � " � . $ d $ � " � � � � � � � " � � � X � Y $ � � " ffi � X � � � � � � � " � � ffi � � � � � & � � � ffi � " � ffi � � (x1, x2, ..., xn) � Y � � � (y1, y2, ..., yn) $ � � � � � � � * ff � � � � � " � � � � � � � � � � � % � ( d = � = −=−++−+− � � �� �� �������� � � � � � � � � ? � � � � � � � � & � � � � � � � " � � � $ ff � ffi � � � � � � � � � � � � � � & ff � � fi fl � � * ff � ffi � � � � � � � � 3 � ffi � & � � % � � � � � � * ff � ffi � � � � 0 � � � � � � � � ff � ff � � ffi � ffi � ffi � � � ff � � � 2 � � � � � � � ff � � ffi � � � � " ! � � � fi % � ffi � & � ffi � � � " � � # + " * ff � " � � * ff � � � � � � & � � � ffi � ℜ � $ � � � � � � " � � � � � � � " � � $ ff � � � � � ff � ff � � � � � � & � � � � � � � & � � � & � � � � ffi � $ � � � � � & � � � ffi � ℜ� $ � � � � � ff � ff � � " % � 3 � & � " � � 0 � � # � � � � � � � * ff � ffi � & � ffi � � � 2 * ff � * ff � � 3 � � � � � � � � � � � � � � � � ffi � ffi � � " � % � n $ � � � ) � � � * ff � � � � � � � " % � � � � " � � � � � � � � � ffi � ffi � ffi � � ffi � � � � � ff � ff � � $ � � � � � 3 � � � ' � � � � ! ff " fi % � * ff � & � & ff � � ffi � � � � " & � � # � � " � ff � � � ffi � � � � � � � � fi % � � ffi � � � � " � � � � 2 � ff � � � � � ff � ff � � ffi � ffi � ffi � � � � � " � � � � * ff � � � � " � � " � fi % � � � � 0 � � & � ffi � � � & � � � ( � � � � � � # � % � � � � 0 � � � � � " � � ffi � � � � � � " � � * ff � � � � � � � � � � � ff � ffi � � � � � � ff � ff � � � ffi � ffi � ffi � � � � � ff � � � 2 � ffi � � � � � � � � � � fi % � # , � � � � � 3 ff � & � � & fi % � ffi � � � � � � � $ � � ffi � � ffi � � � � � � � � ffi � ffi � ffi � � $ * ff � � % � � & � ffi � ffi � � � � � ff ) " ffi � & � � " � � � � � # + � $ � � � � � � � � ) " ffi � & � ffi � ff � � � � � 3 � # � � � � �� � � � �� � fl � � � � � � � � � � � � � � ? � � � � � � � � � � � � � ff ffi � $ � � � � � � 3 ff � � � & � � " � � ff � � # � " � � � ffi � ffi � � � " � � � � � � � � � � � � � � � * ff � & � & ff � � ffi � � � � " & � � � " � � � ffi � � � � � " � � � ffi � ℜ� � � � � � � � � � � � � � � ffi � � # � � & � � � � � � ff � � � � � ffi � � " � � � � � � ai & � � � � � � " � � � ffi � � � � ff � " � � ! � � � ( int ai[10]; � & � ffi � � � � � � � � � � � � � � � � " � � ffi � ai ffi � � � � ff � " � � ! � � � ( ai[0] � � " � & � � � 2 � fi % � ffi � � � � � � � � � � � " � � ffi � ff � � � � � � � � � � ffi � � � � � ff � � � � � � # /* 1ª Versão */ #define N 10 int i; int ai[N]; ai[0]=1; for( i=1; i<N; i++) ai[i]=0; � � � � � � � � % � � � #define N 10 int i; for( ai[0]=1, i=1; i<N; ai[i++]=0); > � " % � � � � � � � � � � � � � ff � fi % � � " � � � ffi � � � � � � � � � ffi � � � & � � � " � � # � � � � 3 $ int ai[]={1,2,3}; int bi[3]; bi=ai; � � + � � > � � � � � � � � * ff � ! � 2 � � ff � � � � � � ff � fi % � � � � � � � � � � ( for( i=0; i<3; i++) b[i]=ai[i]; � � � � �� � � � �� � fl � � � � � � � � � � � � � � � � � ff � � � � � � � � � " � � � � for( i=0; i<3; bi[i]=ai[i++]); ? � ffi � � � � � � � � � � � � ffi � * ff � * ff � � � � � � ffi � ffi � ffi � � # + � � � � � & ff � � $ � � ffi � � � � � � � � � � � � ffi � � � � � ff � ff � � � ( #define N 10 typedef struct { float x, y;} point; point apoints[N]; apoints[0].x=0.0; apoints[0].y=0.0; /* Programa que calcula a distância entre dois pontos de ℜℜℜℜn */ #include <stdio.h> #include <math.h> #define N 10 double distn(float[], float[], int); void read(float[], int); int main() { float x[N], y[N]; printf(“Ponto X: “); read(x, N); printf(“Ponto Y: “); read(y, N); printf(“d= %f”, distn(x, y, N)); return 0; � � � � �� � � � �� � fl � � � � � � � � � � � � � � } double distn(float p[], float q[], int n) { int i; float sum = 0.0; for (i=0; i<n; i++) sum += (p[i]-q[i])* (p[i]-q[i]); return sqrt(sum); } void read(float a[], int n) { int i; for(i=0; i<n; i++) { printf(“Coordenada %d”, i+1); scanf(“%f”, &a[i]); printf(“\n”); } } > � 3 � � � � � � � " � � � ! � & � � " � � " � � � � & � � � � � " � � ffi � � � � � � � # � ff � � � ffi � � � � � ! � & � � " & � � ffi � � � � � � � � ! � & � � ffi � & � � � � ffi � � ffi � � � � � � � � � � � � � � � � � ffi � � � � � � � � " � � � � � ffi � ffi � ffi � ff � � � ) " ffi � & � � " % � " � � � � � � � � � � " � � � � ffi � * ff � � � � � " � ffi � � � � � � # ? � � � ff � � � � � � � � � � � $ � � � ! � & � � ffi � � " % � ! � 2 � � � � � � ! � & � fi % � ffi � ) " ffi � & � � # ? � � � � 3 ffi � � � � $ 3 ffi � � � � ffi � � � � � � � � � � ffi � � � � � � � � " � � � � � ffi � ffi � ffi � � � & � � � � � " ff � ffi � ffi � � � � � fi % � - � ff � � � " � � . ffi � ff � � � � � � " � � � ffi � � � � � � � � � � � fi % � # + � � � � � � � ff � & � � � � � � � " ffi � " & � � ffi � � � & � � � " � � � � � � � � " � � � � ff & � � � � � � � ffi � ff � � � � � � � � � � � � fi fl � � & � " � � & ff � � � � � � � ' � � � $ � * ff � � � � " & � " � � � # � ! � � ff � � � � � ff � " � � � � � � � � � " � � � � � � � fi � � & ff � � ffi � � � � � � � � � ffi � � " � � � � � � ai $ & � � � � � � " � � � # � � " � � ffi � � � � � � * ff � � � � � ffi � � ff � � ffi � � � � � � � - � � � � � . � & � ffi � � � � � fi % � ffi � � ' � � � � * ff � � � � � � � � � � � � � � � & � ff & � � � � ffi � � ffi � � � � � � � # � � � � �� � � � �� � fl � � � � � � � � � � � � � int ai[10]; � ff � " � � 3 * ff � ff � � � � � � & ff � � � � ' � � � � > & ff � � � � � � " � ffi � � � � � ffi � � � � ff � � � � " � � � ff � � � � & � ffi � � � � " � � � � ffi � � � � " � � � # , � � � 2 * ff � � � � � " � � � � & � � * ff � & � ffi � � � � � ffi � ffi � ffi � � � & ff � � ffi � � � " ffi � ffi � � � � � " � � ffi � � � � � � � � fi % � $ � � ffi � � � � � ff � � � � � � � � � ffi � � ff " 0 � � � sizeof(<tipo>) � � � � � � � � � � � � � � � � " ! � � � fi % � # + � � � � � sizeof � � � � � " � ff � � � � - � " � � � � � � � � � " � . ffi � � � � � size_t # 7 5 4 5 � � 9 � < : � � = , �� " � � � � � - � ff � � � " � � ffi � � . � � ffi � � � � � � � � � & � � ff � � � � � 0 � � * ff � � ff � � ffi � � � " ffi � � � fi � ffi � � ff � � � � � � � 0 � � # � � " � � ffi � � � � � ff � 0 * ff � " � & � � " ffi � � � fi � � " � � ffi � � � � � � � � � � � � � ff � " � � � � � � � � � � fl � � ( � � � � �� � � � �� � fl � � � � � � � � � � � � � � char c=3; char *ptr_c; /*declaração de ponteiro para um char */ * ff � " ffi � � � ! � 2 � � � � � � ff � fi % � ptr_c=&c; /*endereço do char c */ � " � % � ptr_c ! � & � & � � � � � � � � � ffi � ! � � ff � � ? � � * ff � � � � � � � 3 � � � � � $ � � � � � � � � 0 � � � � � � � � & � � � � ff � ffi � " � � ! � & � ffi � � - " � � . $ � � � � $ ff � � � � - � � � � � � � . � ff � � & � � 2 � fi % � - � � � � � � � . # ? � � � & � ffi � � � � � � � � � � � � � � � � � � � � � " � � � � � � � � � � � � # + � � � � � � � " ffi � � � � " � � � � � � � " 3 � � & � void* # � ff � * ff � � � � " � � � � � � � ffi � � 0 � � � & � " � � � � � ffi � � � � � void* # � � * ff � � � � � � � � � � � � & � " � � � ffi � ffi � � � � � 0 � � � " ffi � � � fi � ffi � � � � ptr_c $ � � & � � � � � � *ptr_c $ & � � � ( printf("%c", *ptr_c); , � ffi � � � � � � � & ff � � � ffi � ffi � � ffi � � 3 * ff � � & � � � � ffi � � � ff � � � � � ff � - * ff � � � � � � � � . � " � � ffi � ff � � � � � � � � ff � � " � � � � � � � � � � � � � � � � � � � � " � � ffi � � � � � � � � & � � ffi � � " ffi � � � fi � � � � � # + � � � � � " � � ( #define N 10 int ai[N]; ai[2]== *(a+2); /* É sempre verdade */ � � � � � � � � � �� � � � �� � fl � � � � � � � � � � � � � � � � * ff � ! � � ffi � � � � & � � � � & � � � ff � � � � � � & � � � � � * ff � � " � � ffi � � � � � � 3 � � � & � ffi � ffi � � � � � � � � � ffi � � ff " 0 � � � & $ " � � � � � � " fi � ffi � � � � � � � ffi � � � � ++ � -- $ sizeof � * ff � " ffi � � " � � ffi � � � � � � 3 � � � � � � " ffi � � � * ff � � ffi � ffi � ff � � � � � � ff � fi % � # � � ) * ff � int ai[3]; int bi[3]; /* ... */ bi=ai; /*ERRO*/ � � � � * ff � " ffi � ff � � � � � " � � ffi � ff � � � � � & � � � � � ff � " � � ffi � ff � ! ff " fi % � $ � & � � � � ffi � � � ff � � � � � ff � � 0 � � � � " � � � � � � " ffi � � � fi � ffi � � � � � � � � � � � " � � ffi � � � � � � # ? � � � � � � " � � & � � � * ff � � � & � � � � � � � � � � � � � � � � $ � � � � � � � � � � ff � � � � ffi � & � � � fi % � ffi � � � " � � � � � * ff � � ffi � ffi � & � � � fi % � $ * ff � � " � ffi � ! � " � fi % � ffi � � ! ff " fi fl � � # � � � � � � � � $ & � " � � ffi � � � � � � � ! ff " fi % � * ff � & � & ff � � � � � ffi � ff � � � � � ( int soma( int *, int); int main() { int a[]={1,2,3}; int n = sizeof(a) / sizeof (int); pritnf("%d", soma(a, n)); return 0; }; int soma( int *x, int n) { int i, s=0; for(i=0; i<n; s+=x[i++]); return s; � � � � � � � � � & � � " � � � � � � � � � � � " & � � � 3 � � � � ) � � � � � � � * ff � 3 � � � � " � ffi � � � � � � ff � � " ffi � � � � � � � ffi � � sizeof # � � � � �� � � � �� � fl � � � � � � � � � � � � � 7 5 7 5 � � < � � � ; < = � � � � � 9 � < : � � = � # ? � ffi � � � � � � � - � ff � ff � � � � � � . ff � " � � � � � n � ff � � " � � � � � # > � � � ff � � ffi � 3 ff � � " � � � � � � � � � � " � 3 � � � � � � " � � � � � ! � � " � � - � ff � � � � � � 0 � . ffi � � � � " � � � � � " � � ffi � � " � & � � � " � � # int a[3]; int *ptr=&a[1]; ptr+1; ptr-1; � � � � � � � * ff � " � � � � & � � � $ & � � ff � " � � � � � � & ff � � � � � � � � $ � � � " � � � � � ptr 3 � " & � � � " � � ffi � - � ff ffi � & � � � " � � ffi � . � � � � � fi fl � � ffi � � ' � � � � � � � * ff � ! � * ff � � � � � " � � � � � � � � � � � " � � � � ffi � � � � � " � � � & � � - � ff � � � � � � . ffi � � � � " � � � � � � � " � # + � � � 3 ff � ffi � � � � � " & � � � � � � � 2 fl � � � � � � � ffi � & � � � fi % � ffi � � � " � � � � � � � � � � � � � ffi � � � � � 0 � � � � � " � � ffi � # + � � � � ff � � " � � � � � � � � � ff char � � � � � ff float � � � � � � � � � � ff � � ffi � � � � � � � " ffi � � � fi � $ � * ff � " � � ffi � ffi � ffi � � ' � � � � ffi � � � � & � � � � � � � � � 3 � ffi � & � ffi � ff ffi � � � 3 ffi � ! � � � " � � # � # ? � ffi � � � � ff � � � � � � � � � " � � � � � � ffi � � � � � � � � ffi � � ffi � * ff � � � � � � " ffi � � � & � � � � " � � � ffi � � � � � � � � 2 # + � � � � ( int a[5], *ptr1, *ptr2, i; ptr1=&a[1]; ptr2=&a[2]; i = (int) (ptr2-ptr1); � � � � � � � � � � � " � & � � � fi % � � � (ptr2-ptr1) � � � � � " � ff � � � � ffi � � � � � ptr_diff_t * ff � � � � 0 ffi � ! � " � ffi � � stddef.h # # ? � ffi � � � & � � � � � � - ff � � " ffi � � � � � � � � ffi � � � � � � � & � � " � � � $ >, >=, <, <=, ==, != . � � " � � � � � � ffi � � � � � � � � ffi � � ffi � * ff � � " ffi � � � & � � � � " � � � ffi � � � � � � � � 2 # � � � � �� � � � �� � fl � � � � � � � � � � � � � � # ? � ffi � � � � ! � & � ff � � � � � � � ff � fi fl � � � " � � � � � " � � � � � � ffi � � ffi � * ff � ( # � # > � � � " � � � � � � � � � � ffi � � � � � � � � / #� # � � ff � � � 2 � ff � ffi � � � � � ff � " � � � � � � � � � � fl � � / (void *) � � � � " � � � � � � � � � � � � ffi � � 0 /* ou */ NULL � � � � " � � � � � " ff � � � � � < � � � � = � < � � : � : � � � � � � . int x, *ptr_x, y; ptr_x=&x; *ptr_x=0; y=*ptr_x+3; � . void swap( int *, int *); int main() { int i=1, j=2; printf("i:%d, j:%d \n",i,j); swap(&i,&j); printf("i:%d, j:%d \n",i,j); return 0; }; void swap( int *x, int *y) { int tmp; tmp=*x; *x=*y; *y=tmp; � � 7 5 6 5 � � � : 9 � = + � ff � � � � � " � 3 ff � � � � � ffi � & � � � & � � � � � $ & ff � � � � � � � � � � fi % � ffi � � � � 0 � � � � & � � � & � � � � � � � " � ffi � � '\0' $ & ff � � & ' ffi � � � " ff 3 � � & � 3 2 � � � # ? � ffi � � � & � � � � ff � � � � � " � � � & � � � � " ffi � : � � � � �� � � � �� � fl � � � � � � � � � � � � � � char str[]={'a','b','c','\0'}; > � � � � � � � � � � � � � � � � � � � � � & � � � � $ � � � � � 3 � ffi � � � � � � � � fl � � & � � � � � � ff � " � � ( char str[]="abc"; � � � � � 3 � � " � & � & � " ffi � � & � " ffi � " & � � * ff � � � ! � 2 � � � � � " � � $ � � � � � � � � " � � � � � � � � � � " � � � � � � � � ffi � � � � � � � # 1 " � & � � � 0 � � � ff � � � � � ! ff " fi fl � � ffi � � � � � � � � & � <string.h> � � � � � " � � ff � � � � � � " � � # ? � � � � � � � $ � � � � � � ff � ! ff " fi % � " � � � � � � � � string, strlen $ * ff � � � � � � " � � & � � � � � " � � ffi � ff � � � � � " � $ � # � # $ � � � � � " � � " � � � � ffi � & � � � & � � � � � � � & � � � ff � " ffi � � & � � � & � � � � � � " � ffi � � # + � � � ! ff " fi % � � � ffi � � 0 � � � � � � � " � � ffi � ffi � ff � ffi � � ! � � � � � � � ff � " � � � ( /* 1ª Versão: usando arrays */ int strlen1( char s[]) { int len=0; while (s[len])len++; return len; }; /* 2ª Versão : usando ponteiros */ int strlen2( char *s) { char *p=s; while (*p) p++; � � � * ff � � � � a while (*p !='\0') p++; � � return p-s; }; /*Programa de teste */ int main() { char str[]="abc"; printf(%d",strlen2(str)); � � � � �� � � � �� � fl � � � � � � � � � � � � � return 0; } � � ffi ff � � � � � � � � � fl � � � � � ff � " � � � � % � � � � � � 0 � ffi � � � � � � � � � � � � ffi � � % � ffi � � � � � � � � � � ff " � � � " � � " ffi � ffi � � � char str[]="abc"; /* array */ char *ptr="abc"; /* ponteiro */ ? � � � � � � � � � ffi � � � � & � � � � � � � � � � � ffi � ! � � � " fi � � � " � � � ff � � � � � � ff � � " � � � � � $ � � � � � � � � ffi � ! � � � " fi � � � " � � � � � � � � � � � � fl � � � & � � ( � # � � � � � " � � � � � ! � & � � � & � ff � � � � � 0 � � * ff � � � ffi � � � � " � � ff � � $ � � � # $ � � ffi � � � � � & � � � � � ptr++ # > � " ffi � � � fi � ffi � � � � � � 3 � � � � � ffi � & � � ff � & � " � � � " � � # � � � � � � � $ 3 � � � � � � & � � � � � str++ # � # � � � � � " � � � � � � � ffi � � � ! � 2 � � � � � � � ff � fi fl � � ffi � � � � � ptr="zybaz"; & � � � � � � � � � � " � � 3 � � � � ) � � � � � � � � ff � fi % � � � � " � � � � � � " � � / # � � � � � " � � � � � � � � " � � 3 � � � � � � � ffi � � � � � fi � � � � � & � " � � � ff � " ffi � � � fi � # # � � � � � � � � 3 � � � � � � � ffi � � � � � � fi � " � & � � � 0 � � � � � � � � ff � � ffi � � � � & � � � & � � � � � # � � � � �� � � � �� � fl � � � � � � � � � � � � � 7 5 � 5 � � 9 � < : � � = � � � � � � 9 = � � 9 � < = > " ffi � � � 3 � * ff � � � & � � � � � � #define N 10 � � ffi � � ) � � � � � � � � & � � � � const int n=10; � � � � 3 $ � � ffi � � � � � � � � � ffi � & � � � ffi � n & � � ff � & � " � � � " � � � " � � � � � # � � & � " � � � " � � � � ' � � ffi � � � � � " ffi � � � fi � ffi � � � � � � � " � � � � � � � � � � & � " � � � " � � � / � � � � � � � � � * ff � & � " & � � ffi � � # const int *ppci=&n; /* ppci: ponteiro para constante inteira */ > � � � " � � � � � � � � � � & � " � � � " � � � � � ffi � � � � � � � � � ffi � � � � � � � " ffi � � � fi � � � ff � � � & � " � � � " � � � ff � � � � 0 � � ffi � � � � � ffi � & � � � ffi � � " � & � � � " � � # > � � � � � " ffi � � � fi � ffi � � � � ff � � " � � � � � � � � � & � " � � � " � � " % � � � ffi � � � � � � � � � ffi � # int i=3; ppci=& � � � > � � � + � � � � i " % � � � � � & � " � � � " � � $ � � � ff � � � � " % � � � � 0 � � � � � ffi � � � � � � 3 � ffi � ppci # 7 5 � 5 � � 9 � < : � � = � � 9 = � � 9 � < = � � & � � � * ff � * ff � � � ff � � � � � � � ffi � & � " � � � " � � $ � � � � � ffi � ff � � " � � � � � & � " � � � " � � " % � � � ffi � � � � � � � � � ffi � # � � & � � � � � � ff � � " � � � � � & � " � � � " � � ffi � � � � ff � " � � ! � � � ( int i =4; int * const pcpi =&i; pcpi = &i; /* ERRO */ � � � � �� � � � �� � fl � � � � � � � � � � � � � � % � 3 � � � � ) � � � � � � � � � � � � � ffi � ff � � " � � � � � & � " � � � " � � # � � � " � � " � � $ 3 � � � � ) � � � � � � � � � � � � � � " ffi � � � fi � ffi � � � � � � " � � � � � & � " � � � " � � # 7 5 � 5 � � 9 � < : � � = � � 9 = � � 9 � < = � � � � � � 9 = � � 9 � < = � � � � � � � � ffi � � � � � � � � $ " ff � � " � � � � � & � " � � " � � � � � � & � " � � � " � � $ " % � 3 � � � � ) � � � � � � � � " � � � � � � � " ffi � � � fi � ffi � � � � � � " � � � � � " � � � � ' � � � � � � " � � � � � # � ffi � & � � � fi % � ffi � � � � � � � � ffi � � � " � � � � � � 3 ! � � � � & � � � � � � � ff � ( const int ci=1; const int * const pcpci=&ci; � � � � ffi � � � � � 0 � � � � � " � � ffi � � � � � ffi � � � " � � � � � 7 5 � 5 � � 9 � < : � � = � � � � � � 9 � ; < = > � " ffi � � � fi � ffi � � ' � � � � " ffi � & � � fi � � & ' ffi � � � ffi � ff � ! ff " fi % � � � � 3 � � ffi � � � � � ff � � ffi � ffi � " ff � � � � � 0 � � # � � � � 3 ! � � � � ff � � " ffi � � � " � � � � � � � � � � ! ff " fi fl � � # � � & � � � � ffi � � � � � ff � � � � � � � � � ffi � � � " � � � � � � $ � � � � " � � � � � � � � � � ! ff " fi fl � � � � � 3 � � ffi � � � � � � � � � ff ) ffi � � $ � � � � � ffi � � � � � � ! ff " fi fl � � � ff � � � � � " � ffi � � ffi � ! ff " fi fl � � # � ffi � & � � � fi % � ffi � ff � � " � � � � � � � � � ! ff " fi % � � � � � � � � * ff � � � � � � � & � ! � * ff � � � � � � ffi � � � � � � " � � � � � � � ffi � � � � ff � " � � � ffi � ! ff " fi % � # � � � � � � � � $ & � " � � ffi � � � � � ! ff " fi fl � � min � max ffi � ! � " � ffi � � � � � � � � & � � ( int min(int a, int b) { return (a<b ? a : b); � � � � �� � � � �� � fl � � � � � � � � � � � � � } int max(int a, int b) { return (a > b ? a : b) ; } , � � " � � � � � � � � � � � � � � � � � � � ffi � ! ff " fi fl � � $ � # � # $ ff � � " � � � � � � � � � ! ff " fi fl � � ffi � � � � � ff � " � � � int * ff � � � � � � " � int 3 ffi � & � � � ffi � - � � " � & � � � 2 � ffi � � 2 � � � . & � � � � � � � ff � ( int (*pf)(int, int)=0 / � � � � * ff � int *pf(int, int) 3 � ffi � & � � � fi % � ffi � ff � ! ff " fi % � * ff � � � � � � " � ff � � " � � � � � � � � � int. � � & � � � " ffi � & � � � � & � � � " � � pf � � ffi � � � � � � � � ff � � � � � � " ffi � � � fi � ffi � � � � � � � � � ! ff " fi % � & � � � � ) � � � � � � � ffi � � � � � � " � � � � � ff � " � � � & � pf # + � � � � � & ff � � � � ffi � � � ! � 2 � � � � � � ff � " � � � � � � � � ff � fi fl � � ( pf = max; /* equivalente a pf=&max; */ pf = min; � � " � � & � fi % � � ff & � � ffi � ffi � ff � ! ff " fi % � � � � � � 3 � ffi � � � ff � � " � � � � � 3 ! � � � � ffi � � � � ff � " � � ! � � � ( f() { int a, b; a=min(10,20); /* Chamada directa à função */ b=pf(10,20); /* Chamada à função através do seu ponteiro, */ /* e a abreviação de (*pf) (10,20); */ }; � � ffi � � " � fi % � ffi � � � " � � � � � � � � � ! ff " fi % � � � � � � ff " � � � ) � � & � � � � ff � " � � 3 ( � ff � ff � � � ffi � ffi � � � 0 � � & � � � � � � � " � � � � � � � � � � ! ff " fi fl � � � + � � � � � ff � � � � � � � & � fi fl � � $ � � ff � � ffi � � * ff � � � � � � � � � � � � � � ff " � ffi � ffi � ffi � � � � � & � � � � � � " � � ffi � � � � � � # � � � � � � � � � � � � � � � ffi � � � � & � fi % � � � � � �� � � � �� � fl � � � � � � � � � � � � & � � & � � � � � � " � � � � * ff � $ � � � � ff � ffi � ffi � � � � � ff � ff � � ffi � ffi � ffi � � $ � � � � � � ff � � � " ffi � " � � � � ffi � � � � � � � � � * ff � � � � & � � � � � � � � � ff � ff � � $ � � � � � � � � � $ � � � & � " ffi � ff � ffi � ffi � ! ff " fi % � � & � ffi � � � � � ffi � � � � � ff � ff � � # � � " � & � ffi � ! � � � " fi � * ff � � � � � � � � � � � � � � � � � " � � � � � 3 � ! ff " fi % � * ff � � � � & � � � � � � � � ffi � � � � � ff � ff � � # > � � � � � � � � � * ff � � � � � � " � � 0 � � � $ � ) " � � $ � � � � $ � ff � � � ffi ff � � ffi � � � � � " � � � ffi � ff � � � � � � % � � � � � � " � ff � � ffi � � � � � � � � � � � � � � ffi � " � � � ffi � * ff � � & � � � � � ffi � ffi � � & � � � � � # + � � 2 ffi � �� � � � � � � ffi ff � � & � � & ' ffi � � � � � & � � � � " ffi � ff � ! ff " fi % � � � � � � � � � � " � � � ) " � � ffi � � � � � � $ � ff � � � � � � � & � & ff � � � 0 � � � $ � ff � � � � � � � & � & ff � � � � � � � � ff � � � � � " ffi � � � � � & � & ff � � � � � � ffi ff � � $ � � ffi � � � � � & � � � � � ff � � " � & � ! ff " fi % � * ff � � & � � � � & � � � � � ff � " � � ff � � " � � � � � � � � � ff � - � � � ff " ffi � . ! ff " fi % � � � � � & � � � � � � � � " � � � ffi � � � � � � # + � � � � � � � " � � � � � 3 � ff � � � � ffi � " � � � � � � � � � � � � � � � � � � � � & � � � � ffi � 0 � � � � ffi � ) " � � # � include <stdio.h> int min(int, int); int max(int, int); int calcula(int (*) (int, int), int*, const int); int main() { int a[]={1, 2, 3}; const int n = sizeof(a) / sizeof(int); int maximo, minimo; maximo = calcula(max, a, n); minimo = calcula(min, a, n); printf("min: %d - max: %d \n", minimo, maximo); return 0; }; int calcula(int (*pf) (int, int), int *a, const int n) { int i, res=a[0]; for (i=1; i<n; i++) res = pf(res, a[i]); return res; }; � � � � �� � � � �� � fl � � � � � � � � � � � � � ? � � � � 3 ffi � ff � � ff � � � 2 � fi % � � � � ffi � " � � ffi � & ' ffi � � � $ � � � � � � � � " � � � � � ! � & � � � � � � " ff � � " fi % � ffi � & ' ffi � � � # 1 - ff � � � . � � � ! 0 & � � � � � � � ff � � " � & � ! ff " fi % � � " � & � � � ffi � � � � � � � ! ff " fi % � calcula � ffi � * ff � � � � � � � � � fi fl � � ffi � � � � ! ff " fi % � � ff � � � � � � ) " � � $ � ff � � � � � � � � 0 � � � $ � � & # 7 5 � 5 � � 9 � < : � � = � � � � < = � � � � � � � = ? � � � � & � ffi � � � ff � � � � ffi � ffi � ffi � � ffi � ff � � � � � ff � ff � � � � � � � 3 � ffi � ff � � " � � � � � ff � � � 2 � � � � � � � � � � ffi � � -> $ & � � " � � � � � � � � � � � � # typedef struct { float x, y; } point; point p, *pp; p.x=0.0; pp=&p; pp->y=0.0; � " ffi � � � � � � � � � � � � � % � � � � � � � � ! � � � � ffi � * ff � ( (*pp).y=0.0; 7 5 � 5 � � � � � = � < � � 9 � < : � � = � � � � � ! � � � * ff � ff � � � � � ffi � � � " � � � � � � 3 ffi � & � � � ffi � � � � ( int ai[5]; � � � 3 * ff � ff � � � � � ffi � � � � � " � � ffi � � � � � � � � � " � � � � � � 3 ffi � & � � � ffi � & � � ( int*api[5]; + " � % � & � � � � � 0 � ffi � & � � � fi % � ffi � ff � � � � � ffi � ! � � � � � + ffi � � � � � ff � ff � � � ffi � � � " � � � � � � � � �� � � � �� � fl � � � � � � � � � � � � � � � � � � � � * ff � � � � � � � api � � � � � � fi � � � � � � ff � � ffi � � � � " ffi � � � fi � � ffi � � " � � � � � � / � " % � � � � � � ff � � ffi � � � � � � ' � � � � � � " � � � � � � # � � � � � � � � � � � � � � � ffi � ff � � � 2 � fi % � ffi � � � � � � � ffi � � � " � � � � � � $ � � � � � � � � ! ff " fi % � * ff � � � � � � " � � & � " � � � " � � “false” � � � � � � � � � � � n ! � � � � � � � � � " � � & � " � � � " � � “true” & � � � & � " � � 0 � � � # const char* bool (int n) { static const char * names[]={"false", "true"}; return (n? names[1]: names[0]); }; > ff � � � � � � � � " � � fi fl � � � � � � � � � ff � � " � � � � � � ) � � � � # � � � " � � " � � $ � � � � � � � � " � � fi % � � � � � & � � � � ! � & � � " � � � ffi � ! � & 0 � � � � � � � ffi � � & � � � � � � � � � � � � " � � � # � � " % � � � � � � � ( � � � � � � ! ff " fi % � � & � � ffi � ! � � � � * ff � � � � � � " � ff � � � � � " � & � � " � � ffi � ff � � ffi � ffi � ff ) " ffi � & � � " � � � � � � " � � � � � � � # � � � ff � � � " � � $ � � � � � � � � " � � � � " � � � � � � � � � � � � � � " � � � � 2 � � � � # � � � � � � � & � � � static � � � � � � � � � � ffi � � � ffi � ffi � � � � � 0 � � names # � � static $ � � � � � ffi � � � ffi � ffi � ff � � � � � 0 � � ffi � & � � � ffi � " � � " ) & � � ffi � ff � � & � - ffi � & � � � fi % � � " � � � " � � ff � & � . � � � � " � " � ! � ffi � � � & � # � � static $ � � � � � ffi � � � ffi � ffi � ff � � � � � 0 � � � & � � ff � ! ff " fi % � � " � & � � � � � * ff � " ffi � � ! ff " fi % � 3 & � � ffi � � � � � � � � � � � � � 2 � � � � � " � " � ! � ffi � � � � & ff fi % � ffi � � � � � � � � $ � � " ffi � � � � ff & � " � � � ffi � � � � � � � � � ffi � � " � � � � � & � � ffi � � ! ff " fi % � # � � � " � � " � � $ � � � � � 0 � � & � " � ) " ff � � � � � � & � $ � � � � $ " % � � � � 0 � & � � � ) � � ! � � � ffi � ! ff " fi % � � " ffi � 3 ffi � ! � " � ffi � # 7 5 4 � 5 � � � � � < 9 � � = � � � � 9 � � � � � : 9 � � � * ff � " � � � " � � � � � � * ff � � � � & � � � ff � � � � � � � � � & � � � � " ffi � ! � � " � � ffi � � � ff " � � ff � ff � � � � � � ff � " � � � # , & � � � ff � � � � � � � � � * ff � � � � � � � ffi � � � � � � � 3 � � � � ff � " � � ( � � � � �� � � � �� � fl � � � � � � � � � � � � & � � � ff � � � � � � � * ff � & � & ff � � ! � & � � � � � � � & � � � � " ffi � ! � � " � � ffi � � � ff " � � � � " � � � � � � � � � � � � � � � � � � * ff � * ff � � � � � � � � � � � ! � & � � � � � $ & � � � ( > fact 3 6 + � � � � � & � � � � � � � " � � 3 & � " � � � ff � ffi � � � & � � � � " ffi � � � � � � � ff � " � � � ffi � ! ff " fi % � main # � ff � " ffi � � ! ff " fi % � main 3 & � � ffi � $ 3 & � � ffi � & � � � � � ff � " � � � ( � # argc � * ff � & � " � 3 � " � � � � ffi � � � � ff � " � � � & � * ff � � � � � � � � � 3 & � � ffi � � � - * ff � 3 � � � � � � � � � " � � ffi � � � ' � � � � � � � � � � � . # � � � � $ " � � � � � � � & � � argc � � � � � � � � � � � # � # argv � * ff � 3 ff � � � � � ffi � � � � � " � � $ � " ffi � � � � � � � � � � � � " � � � � � " � � ffi � � � � � � � � � � � & ff � 0 � � � � � � � � � � " � � � � � � " � � � & � " � � � & � " � ff " � � ffi � � � � ff � " � � � & � * ff � � � � � � � � � ! � � & � � ffi � # � � � � � � � � & � � $ argv[0] � � � � � � � � � � " � "fact" � argv[1] � � � � � � � � � � " � "3" - � � $ � � ff � � � � � " � / " % � � � " � � � � � . # � � � � $ � � * ff � � � � � � � � & � � � � � ff � � � � � � � * ff � � � & � � � � " � � & � % - " � stdout � � � � � � � � � � � � � � � & � � � � . � � � ff � � ' � � � � " � � � � � � � � ff � " � � � & � * ff � ! � � & � � ffi � $ � � ffi � � � � � � � & � � � � � ( int main(int argc, char *argv[]) { int i; printf(“O meu nome e os argumentos com que foi chamado são: \n”); for(int i=0; i < argc; i++) printf(" %s \n",argv[i]); return 0; }; � � * ff � � � � � � ! � � " � � � � � � � � � � ff � � � � � � � � � ff " � ffi � ffi � � ffi � ff � � � � � � � � & � " � � � � � � � ! � 2 � � � " � � � ffi � ffi � ffi � ffi � � " � � � � � � � � � � * ff � � � � � � ffi � � � " � � � � � # � � � � �� � � � �� � fl � � � � � � � � � � � � � 7 5 4 4 5 � � < � � � � : � = � # � � ffi � ff � � & � � � ffi � � " � � � � � � & � " � � � � � " � � � $ & � " � � � ff � ff � ! ff " fi % � * ff � � � � � ! � * ff � � � ( � . + � � � � � � � � " � � � ffi ff � � & � ffi � � # � . � � � * ff � " & � � ffi � � � � " � � � 3 � � � � � � � � " � � � " ' � � " � $ �
Compartilhar