Saltar para: Post [1], Comentários [2], Pesquisa e Arquivos [3]




Fundamentos de Programação em C: Subprogramas

por Fábio Domingos, em 16.02.09

 Perguntam-me muitas vezes como se faz um subprograma, há pessoas que até fazem disso um monstro, na verdade, não é assim tão difícil, até é bem fácil comparado com certas coisas, por isso decidi criar este FAQ, para esclarecer algumas das dúvidas que me têm perguntado sobre este assunto:

 

1) O que é um subprograma?

Um subprograma, é um programa dentro de outro programa, através deles, podemos organizar melhor o nosso código, entre outras vantagens.

 

2) É necessário declarar o subprograma?

Sim e não. É necessário caso escreva os mesmos depois da função main(), e não é necessário caso os escreva antes da função main() . Pessoalmente, prefiro escrevê-los depois da função main().

 

3) O que são aquelas palavras que estão entre os () dos subprogramas?

São os argumentos que o subprograma vai receber, por exemplo queremos um programa que faça a soma de dois algarismos contidos em duas variáveis do tipo inteiro, o subprograma deverá então receber essas duas variáveis, é ente os () que vamos indicar isso, neste caso vai ficar algo do tipo:

 

void somalgarismos(int numero1, int numero2)

 

4) Como faço uma chamada a um subprograma?

Tal como chama uma pessoa, ou seja através do nome da mesma, ex:

nomedosubprograma()

ou caso queira enviar argumentos:

nomedosubprograma(argumento1,argumento2)

 

5) Estou a escrever os subprogramas depois da função main, onde os devo declarar?

Antes da função main.

 

6)O que é aquela coisa que vem antes do nome do subprograma? 

É o tipo de retorno, quando um subprograma é terminado, ele poderá retornar algo, por exemplo, no caso do subprograma anterior, podemos querer que ele retorne a soma dos dois algarismos, neste caso adicionamos ao nome do subprograma a palavra "int", para que o valor a retornar seja um número inteiro, e no final pedimos que ele faça retorno ao resultado através da palavra chave return e o que quer retornar.

Exemplos de tipos de retorno: void - sem qualquer retorno

int - um valor inteiro

float - um valor de virgula flutuante

char - um caracter

 

Note-se que em C não existem tipos booleanos.

 

7)Posso criar variáveis dentro dos subprogramas?

Pode, chamam-se variáveis locais.

 

Se tiver mais dúvidas, críticas ou sugestões, por favor utilize os comentários.

Autoria e outros dados (tags, etc)

publicado às 01:25


5 comentários

De Gonçalo a 11.02.2010 às 17:37

Boas....
Estou-me a iniciar em programaçao em c, e não estao a conseguir faxer sub programas, actualmente não percebo o que estou a fazer mal, o programa que tenho actualmente é:

#include
[Error: Irreparable invalid markup ('<stdio.h>') in entry. Owner must fix manually. Raw contents below.]

Boas....
Estou-me a iniciar em programaçao em c, e não estao a conseguir faxer sub programas, actualmente não percebo o que estou a fazer mal, o programa que tenho actualmente é:

#include <stdio.h>
#include <stdlib.h>


int cinco()
{
float first, second, third, resultado;
printf("Primeiro numero:");
scanf("%f", &first);
printf("Segundo numero:");
scanf("%f", &second);
printf("Terceiro numero:");
scanf("%f", &third);
resultado = (first+second+third)/3;
printf("Resultado:%.2f",resultado);
return 0;
}

int main()
{
int programa;
printf("Nomes dos Programas: \n");
scanf("%char", &programa);
if (programa == cinco())
goto cinco();
return 0;
}

Agradeço que me ajude....
Cumprimentos
Gonçalo Pereira

De Fábio Domingos a 01.04.2010 às 20:23

Descupa, ter-te respondido só agora.
No main, em vez de %char, deves ter %c, pois esta é a forma correcta de ler um único caracter.
No entanto, não queres ler apenas um caracter, daí que deverás usar strings, para que o utilizador possa escrever o nome do programa, daí que correctamente tens de escrever o main() da seguinte forma:
int main()
{
char programa[20];
printf("Nomes dos Programas: \n");
scanf("%s", programa);
if (programa == cinco)
goto cinco();
return 0;
}

Não pude testar porque neste momento não tenho um compilador de C à mão, mas deve funcionar com poucos erros.

Cumprimentos

De Jogos a 06.01.2011 às 22:37

Qual o programa que necessito para programar em C para windows?

De Help You a 15.06.2012 às 01:20

Voce pode usar o Dev C++ ou o Code::Blocks, esse ultimo, eu recomendo, por ser de graça de e de longe o melhor

De Fábio Domingos a 12.02.2011 às 15:01

Podes usar o lcc, disponível em http://www.cs.virginia.edu/~lcc-win32/ .

Obrigado pela visita!

Comentar post



Mais sobre mim


Pesquisar

Pesquisar no Blog

Arquivo

  1. 2013
  2. J
  3. F
  4. M
  5. A
  6. M
  7. J
  8. J
  9. A
  10. S
  11. O
  12. N
  13. D
  14. 2012
  15. J
  16. F
  17. M
  18. A
  19. M
  20. J
  21. J
  22. A
  23. S
  24. O
  25. N
  26. D
  27. 2011
  28. J
  29. F
  30. M
  31. A
  32. M
  33. J
  34. J
  35. A
  36. S
  37. O
  38. N
  39. D
  40. 2010
  41. J
  42. F
  43. M
  44. A
  45. M
  46. J
  47. J
  48. A
  49. S
  50. O
  51. N
  52. D
  53. 2009
  54. J
  55. F
  56. M
  57. A
  58. M
  59. J
  60. J
  61. A
  62. S
  63. O
  64. N
  65. D
  66. 2008
  67. J
  68. F
  69. M
  70. A
  71. M
  72. J
  73. J
  74. A
  75. S
  76. O
  77. N
  78. D
  79. 2007
  80. J
  81. F
  82. M
  83. A
  84. M
  85. J
  86. J
  87. A
  88. S
  89. O
  90. N
  91. D