66
Prof. Jaime Soto Sección (001) Material original de Prof. AURELY LEAL modificado por Jaime Soto Algoritmos y Programación I Parte 3

Algoritmos y Programación I Parte 3 - MSc. Jaime Soto … El proceso de diseño del algoritmo y luego la codificación del programa consiste en definir acciones o instrucciones que

  • Upload
    buinhi

  • View
    223

  • Download
    3

Embed Size (px)

Citation preview

Prof. Jaime SotoSección (001)

Material original de Prof. AURELY LEAL modificado por Jaime Soto

Algoritmos y Programación IParte 3

PROGRAMA

Conjunto de instrucciones – órdenes dadas a la máquina –que producirán la ejecución de una determinada tarea. Esun medio para conseguir un fin. Es la información necesariapara solucionar un problema.

Fases de un Programa:◦ Definición y análisis del Problema.

◦ Diseño de Algoritmo (pseudocódigo).

◦ Codificación del programa.

◦ Depuración y verificación del programa.

◦ Documentación.

◦ Mantenimiento.

EL PROCESO DE LA PROGRAMACIÓN

Definición del Problema

Diseño del algoritmo

Codificación del Programa

Depuración y Verificación

DOCUMENTACIÓN

MANTENIMIENTO

BLOQUES DE UN

PROGRAMA

ENTRADA PROGRAMA SALIDA

PARTES CONSTITUTIVAS DE UN PROGRAMA

INSTRUCCIONES

El proceso de diseño del algoritmo y luego lacodificación del programa consiste en definiracciones o instrucciones que resolverán elproblema.

Las instrucciones se deben escribir yposteriormente almacenar en memoria en elmismo orden en que han de ejecutarse, es deciren, secuencia.

INSTRUCCIONES

Un programa puede ser lineal, si las instruccionesse ejecutan secuencialmente, sin bifurcaciones, esdecir, en secuencia.

◦ Instrucción 1

◦ Instrucción 2

◦ Instrucción 3

.

.

.

.

.

◦ Instrucción n

INSTRUCCIONES

Un programa puede ser no lineal, cuando seinterrumpe la secuencia mediante instrucciones debifurcación.

◦ Instrucción 1

◦ Instrucción 2

.

.

◦ Instrucción x

◦ Instrucción n

.

.

◦ Instrucción n+1

TIPOS DE INSTRUCCIONES

Las instrucciones básicas son independientes dellenguaje. La clasificación más usual es:

◦ Instrucciones de Inicio / Fin.

◦ Instrucciones de Asignación.

◦ Instrucciones de lectura.

◦ Instrucciones de escritura.

◦ Instrucciones de bifurcación.

INSTRUCCIONES DE INICIO/FIN

Como su nombre lo indica muestran el inicio y el fin de unprograma, un subprograma, un modulo.

En pseudocódigo es inicio / fin.

En Pascal es Begin / End.

En Lenguaje C es: {}

INSTRUCCIONES DE ASIGNACIÓN

Se utiliza para asignar o almacenar valores a

variables o constantes. Es una operación que sitúa

un valor determinado en una posición de memoria.

Se demuestra en pseudocódigo con el símbolo <-

(Una flecha apuntando hacia el identificador, donde

se desea guardar el valor.). variable <-

expresión.

El tipo de expresión debe ser del mismo tipo que el

de la variable, en caso contrario en la fase de

compilación se produciría un error de tipos.

REGLAS DE ASIGNACIÓN

Una variable en el lado derecho de una sentenciade asignación debe tener un valor antes de que lasentencia de asignación se ejecute. Hasta que unprograma le da un valor a una variable, esavariable no tiene valor. Por ejemplo:Si x no tiene un valor antes de ejecutar y <- x+1,se producirá un error lógico.

En la izquierda de una sentencia de asignación solo

pueden existir variables. Por consiguiente no es

valido lo siguiente:

Valor_Neto - Tasas <- 34015.

REGLAS DE ASIGNACIÓN (RECORDAR)

La operación de asignación es una operacióndestructiva debido a que el valor almacenado enuna variable se pierde o se destruye y se sustituyepor el nuevo valor en la sentencia de asignación.

INSTRUCCIONES DE ASIGNACIÓN

Son instrucciones que asignan un valor de

cualquier tipo a una variable.

A = 80 A toma el valor de 80.

Que valor toma la variable C.

◦ A = 12

◦ B = A

◦ C = B

En Lenguaje C es: = igual

INSTRUCCIONES DE ASIGNACIÓN

¿Cuál es el valor de la variable AUX al ejecutarse la

instrucción 5?.

◦ A = 10

◦ B = 20

◦ Aux = A

◦ A = B

◦ B = Aux

¿Cuál es el valor de N, si N tiene el valor actual de

2?

◦ N = N +5

INSTRUCCIONES DE ASIGNACIÓN

AMN = 3+14+8 Asignación Aritmética

AMN = 25

M = 8<5 Asignación Lógica

N = M || (7<=12)

X=´12 de octubre de 1942´

Asignación de cadena de Caracteres

INSTRUCCIONES DE LECTURA DE DATOS (ENTRADA)

Esta instrucción lee datos de un dispositivo de

entrada.

pseudocódigo leer (número, horas, tasa)

Leer del teclado número, horas, tasa, se archivan

en la memoria. Ej: 1536,48,2000; entonces:

número=1536

horas=48

tasa=2000

En Lenguaje C es:

//Lee el valor y lo guarda en una variable

scanf ("%d%d%d", &número,&horas,&tasa);

INSTRUCCIONES DE ESCRITURA DE RESULTADOS (SALIDA)

Estas instrucciones se escriben en un dispositivo de

salida. Explicar el resultado de la ejecución de las

siguientes instrucciones:

A=100

B=200

C=300

Escribir (A,B,C)

Se visualizarán en la pantalla o se imprimen los valores

100, 200 y 300 que contienen las variables A,B y C.

En Lenguaje C es:

//Imprime en pantalla el texto y el valor

printf (“\n El valor es %d%d%d", A,B,C);

INSTRUCCIONES DE BIFURCACIÓN

El desarrollo lineal de un programa se interrumpe

cuando se ejecuta una bifurcación. Las bifurcaciones

pueden ser, según el punto del programa a donde se

bifurca, hacia delante o hacia atrás.

Bifurcación Incondicional: Se realiza siempre que el

flujo del programa pase por la instrucción sin necesidad

del cumplimiento de ninguna condición.

Bifurcación Condicional: Depende del cumplimiento

de una determinada condición. Si se cumple la

condición, el flujo sigue ejecutando la acción f2. Si no

se cumple, se ejecuta la acción f1.

INSTRUCCIONES DE BIFURCACIÓN

Bifurcación Adelante (Positivo)

◦ Instrucción 1

◦ Instrucción 2

.

.

◦ Instrucción 8

◦ Instrucción 9

.

.

◦ Ultima Instrucción

INSTRUCCIONES DE BIFURCACIÓN

Bifurcación Atrás (Negativo)

◦ Instrucción 1

◦ Instrucción 2

.

.

◦ Instrucción 8

◦ Instrucción 9

.

.

◦ Ultima Instrucción

BIFURCACIÓN INCONDICIONAL

Fases de la ejecución de un programa

Si

Programa Fuente

Compilador

Existen errores en

la compilación

Programa

Programa Ejecutable

Ejecución

No

Montador

BIFURCACIÓN CONDICIONAL

Si

Acción f1

Existen errores en

la compilación

Acción f2

No

ELEMENTOS BÁSICOS DE UN PROGRAMA

En programación se debe separar la diferencia entre el diseñodel algoritmo y su implementación en un lenguaje específico.

Los lenguajes de programación tienen elementos básicos quese utilizan como bloques constructivos, así como reglas paralas que esos elementos se combinan.

Palabras Reservadas ({ }, if, else, for, while, do, int, float)

Identificadores (nombres de variables esencialmente,procedimientos, funciones, etc.)

Caracteres especiales (coma, apóstrofe, etc.)

Constantes, variables, expresiones, instrucciones.

ELEMENTOS BÁSICOS DE UN PROGRAMA

Existen otros elementos que forman parte de los programas,cuya compresión y funcionamiento será vital para el correctodiseño de un algoritmo y la codificación del programa:

Estos elementos son:

Bucles, contadores, acumuladores, estructuras:(secuenciales, selectivas, repetitivas).

DATOS Y TIPOS DE DATOS

Los diferentes objetos de información con los que unprograma trabaja se denominan datos.

Todos los datos tienen un tipo asociados con ellos quenos servirá para poder conocer con que informacióntrabajaremos. Es decir, cuando ingresemos el sueldo deun trabajador necesitamos que este contengadecimales, o al solicitar la edad de una persona éstatiene que estar con números enteros, etc.. Además lasuma entre caracteres no tiene sentido.

DATOS Y TIPOS DE DATOS

La asignación de tipos a los datos tiene dos objetivosprincipales:

Detectar errores de operaciones aritméticas en losprogramas.

Determinar como ejecutar las operaciones.

Existen dos tipos de datos: simples (sin estructuras) ycompuestos (estructurados). Los datos estructuradosson conjunto de partida de datos simples con relacionesdefinidas entre ellos.

Los tipos de datos más comunes son: numéricos,caracteres y lógicos.

DATOS NUMÉRICOS

Es el conjunto de los valores numéricos. Estos puedenrepresentarse en:

Tipo Numérico Entero: Los enteros son aquellosnúmeros que no tienen componente fraccionario odecimal y dentro de la computadora son unsubconjunto finito de los números enteros. Estosnúmeros pueden ser negativos o positivos y elrango es de –32,768 a 32,767.

Ejemplo: 6, -6, 65, -98, 1900, -5672

En Lenguaje C es: int a

DATOS NUMÉRICOS

Tipo Numérico Real: son aquellos números que tienenuna parte fraccionaria y pueden ser positivos ynegativos dentro de la computadora forman unsubconjunto de los números reales. Para representarnúmeros muy pequeños o muy grandes se emplea lanotación de punto flotante, que es una generalizaciónde la notación científica. En esta notación se consideraal número real como mantisa y al exponente la potenciade 10 a la que se eleva este número.

Ejemplo: 0.08, -52.364, 3.0, -7.0

36.75201 x 1018 36.75201 mantisa 18 exponente

En Lenguaje C es: float a

DATOS LÓGICOS O BOOLEANOS

Este tipo de dato es aquel que solo puede tomaruno de 2 valores: verdadero (true) o falso (false).En lenguaje C no existe el tipo lógico pero sepuede implementar con un número enteroconociendo que 0 es falso y cualquier númerodiferente de cero verdadero.

Este tipo de dato se utiliza para representar lasalternativas (si/no) a determinadas condiciones.Ejemplo: cuando se pide si un valor es par, larespuesta será verdadera o falsa, según sea par oimpar.

DATOS LÓGICOS O BOOLEANOS

C no posee ninguna implementación primitiva deltipo booleano. Entonces, para declarar variables deeste tipo, hace falta definirlo previamente. Lamanera de hacerlo es añadir o crear nuevosnombres para tipos definidos de datos:

typedef enum {FALSE=0, TRUE=1} booleano;

Que define el tipo booleano y asigna a suselementos FALSE y TRUE los valores 0 y 1respectivamente.

DATOS TIPO CARÁCTER Y TIPO CADENA

El dato tipo carácter puede tomar un valor de unconjunto finito y ordenado de caracteres osímbolos que la computadora reconoce (códigoASCII). Este tipo de dato ocupa un byte yalmacena un solo carácter.

Existe también el dato tipo cadena (compuesto)que es una sucesión de caracteres que seencuentran delimitados por comillas, la longitud deuna cadena es el número de caracterescomprendidos entre los delimitadores.

DATOS TIPO CARÁCTER Y TIPO CADENA

Los caracteres que reconoce la computadora noson estándar; sin embargo, la mayoría reconocelos siguientes caracteres alfabéticos y numéricos.

Caracteres alfabéticos: (A,B,C,…..,Z)(a,b,c,…..,z)

Caracteres numéricos: (1,2,…..,9,0)

Caracteres especiales: (+,-,*,/,^,., ;, <,>,$.....)

Ejemplo de cadena de caracteres:◦ ´Hola Mundo´

◦ ´12 de octubre de 1942´

◦ ´Sr. McDonald´

TIPOS DE DATOS

Tipos de datos Descripción Memoria

Int Entero 2 bytes

Char Carácter 1 byte

Float Flotante 4 bytes

Double Flotante de doble 8 bytes

precisión

IDENTIFICADORES

Representan los nombres de los objetos de unprograma (constantes, variables, tipos de datos,procedimientos, funciones, etc.). Es una secuencia decaracteres que puede ser de cualquier longitud, aunquetiene ciertas reglas que hay que seguir, las cuales son:

◦ Debe comenzar con una letra o "_" y no puede contenerespacios en blanco.

◦ Letras, dígitos y caracteres subrayados ("_") están permitidosdespués del primer carácter.

En síntesis un identificador es un método para nombrara las celdas de memoria en la computadora, en lugar dememorizarnos una dirección de memoria.

Se utilizan para nombrar variables, constantes,procedimientos y funciones.

CONSTANTES

Una constante es un dato que permanece sin cambiodurante el desarrollo del algoritmo o durante laejecución del programa. La mayoría de los lenguajes deprogramación nos permiten el manejo de diferentestipos de constantes, estas pueden ser enteras, reales,caracteres y cadenas. En lenguaje C una constante sedefine por medio de la instrucción #define (directiva delprocesador).

Ejemplo: #define MAXLINEAS 25

Le indica al compilador que debe sustituir elidentificador MAXLINEAS por el número 25, cada vezque aparezca en el programa, excepto cuando es unaconstante literal de cadena, es decir, que se encuentreentre comillas.

CONSTANTES VÁLIDAS

Constantes reales válidas: 1.234 -0.1234

Constantes reales no válidas: 1,354.65 (comas nopermitidas).

Constantes tipo carácter: ´B´ ´+´ ´4´

Constantes tipo cadena de caracteres: ´AurelyLeal´

VARIABLES

Una variable es un dato cuyo valor puede cambiardurante el desarrollo del algoritmo o ejecución delprograma. Hay diferentes tipos de variables:enteras, reales, caracteres y cadenas. Una variableque es de cierto tipo solo puede tomar valores quecorrespondan a ese tipo. Si se intenta asignar unvalor de tipo diferente se producirá un error.

En lenguaje C la sintaxis para definir una variablees:

Tipo_de_dato Identificador

int a;

float a;

VARIABLES

Una variable se identifica por dos atributos: elnombre de la variable (identificador) y el tipo de lavariable. El identificador se puede formar concaracteres alfanuméricos y el carácter desubrayado ( _ ) empezando siempre por una letra.No se admiten como identificadores palabrasreservadas del lenguaje de programación que seesté utilizando. Los nombres de variables que seelijan para el algoritmo o programa deben sersignificativos y tener relación con el objeto querepresenta.

OPERADORES

En todos los lenguajes de programación se utilizanoperadores para efectuar operacionesaritméticas. Combinando las variables y constantes enexpresiones aritméticas por medio de funcionesadecuadas.

OPERADORES MATEMÁTICOS

Operador Significado+ Suma- Resta* Multiplicación/ División^ Exponenciación% Módulo++ Incremento-- Decremento

OPERADOR DIV (/) Y MOD (%)

En todos los lenguajes de programación se utilizanoperadores para realizar divisiones reales (/), enteras(\)y módulos (%).

19 / 6 = 3.16 19 \ 6 = 3 19 % 6 = 1

15 / 6 = 2.5 15 \ 6 = 2 15 % 6 = 3

Expresión Resultado Expresión Resultado10.5/3.0 3.5 10\3 3

1/4 0.25 18\2 9

2.0/4.0 0.5 30\30 1

6/1 6.0 6\8 0

30/30 1.0 10%3 16/8 0.75 10%2 0

OPERADORES

En ocasiones en los programas se necesitan realizarcomparaciones entre distintos valores, esto se realizautilizando los operadores relacionales, los cuales selistan a continuación:

Operador Significado< Menor> Mayor<= Menor que>= Mayor que== Igual!= Diferente

&& Y|| O! Negación

RELACIONALES

LÓGICOS

EXPRESIONES

Las expresiones son combinaciones de constantes,variables, símbolos de operación (operadores),paréntesis y nombres de funciones especiales.

Ejemplo: sqrt ((p-a)*(p-b)*(p-c)); (a+b+c) / p;

Una expresión toma un valor que se determina porel resultado de la ejecución de las operacionesindicadas, tomando los valores de las variables yconstantes y aplicando las prioridades de lasoperaciones.

Según el tipo de operadores que se emplee en laexpresión. Estas se clasifican en aritméticas,lógicas, relacionales, de caracteres o mixtas.

EXPRESIONES ARITMÉTICAS

Este tipo de expresiones nos sirve para representarformulas matemáticas y utilizan los operadoresaritméticos.

Las expresiones que tienen 2 o más operadoresrequieren reglas de precedencia que permitendeterminar el orden en que habrán de efectuarsedichas operaciones. Por ejemplo:

5 + 8 * 2 //Primero se hace 8 * 2 y luego se suma5 5+16 = 21

10%3 = 1 //Regresa el residuo de la divisiónentera Nota: En caso de coincidir la prioridad devarios operadores en una expresión el orden en elque se efectúan es de izquierda a derecha.

REGLAS DE PRIORIDAD

Las expresiones con más de dos operandos, requieren de reglasmatemáticas que aseguren su correcta interpretación.

Por Ejemplo: 3 * 4 + 5 Puede ser interpretada como:(3 * 4) + 5 = 17 ó bien 3 * (4 +5) = 27

Para evitar confusión, C Sigue las siguientes normas deprioridad:

1. Operaciones entre paréntesis, se evalúan primero los másinternos.2. Operadores (*, /)3. Operadores (%)4. Operadores (+, -)5. Operadores (=, <, >, <=, >=, !=)

En caso de operadores de igual prioridad se evalúa la expresiónde izquierda a derecha.

Ejemplo:2 * 2 + 3 * 3 + 6 / 2 % 2 = (2*2) + (3*3) + ((6 / 2) % 2)

EXPRESIONES LÓGICAS

La expresión lógica mas simple es una variable oconstante lógica que puede establecerse a valoresverdadero (true) o falso (false).

Las expresiones lógicas pueden combinarse paraformar expresiones mas complejas utilizando losoperadores lógicos and, or y not. Estos se utilizancon constantes lógicas.

[operando1] operador operando2

El operando1 según el tipo de operador puede noexistir.

EXPRESIONES LÓGICAS

La operación and combina dos condiciones simplesy produce un resultado verdadero solo si los dosoperandos son verdaderos. La operación or esverdadera si uno de los dos operandos esverdadero. La operación not actúa sobre una solacondición simple u operando y simplemente niega(o invierte) su valor. Esto se describe masfácilmente usando unas tablas denominadas 'tablasde verdad'.

Cuando la expresión lógica contiene varios tipos deoperadores, es preciso seguir un nuevo orden deprecedencia o prioridad para obtener el valor finalde la expresión.

EXPRESIONES LÓGICAS (Tablas de Verdad)

Operador Lógico Expresión lógica Significado

! No !p Negación de p&& p&&q (p and q) Conjunción de p y q|| p||q (p||q) Disyunción de p y q

a no a

verdadero falsofalso verdadero

a b aybverdadero verdadero verdaderoverdadero falso falsofalso verdadero falsofalso falso falso

No (6>10) es verdaderaYa que (6>10) es falsa

EXPRESIONES LÓGICAS (Tablas de Verdad)

a b a||b

verdadero verdadero verdadero

Verdadero falso verdadero

falso verdadero verdadero

falso falso falso

PRIORIDAD DE LAS EXPRESIONES LÓGICAS

Para evitar confusión, C Sigue las siguientesnormas de prioridad:

1. Operaciones entre paréntesis, se evalúanprimero los más internos.

2. Operadores (^, !)

3. Operadores (*, /,\,%, &&)

4. Operadores (+, -, ||)

5. Operadores (=, <, >, <=, >=, !=)

Cuando la expresión lógica contiene varios tipos deoperadores, es preciso seguir un nuevo orden deprecedencia o prioridad para obtener el valor finalde la expresión.

PRIORIDAD DE LAS EXPRESIONES LÓGICAS

Ejemplo:

Si num1, num2, son variables enteras con valoresasignados 3 y 6, respectivamente, entonces:(2+3*num1) <> 6+(num2-1)

2+3*num1 = 11

6+(5) = 11

falso

5>3 && 6>2

año%4==0 && año%100!=0 || año%400==0

RESULTADO DE LAS EXPRESIONES LÓGICAS

El resultado de una expresión lógica es un valor detipo lógico: verdadero o falso.

Cuando se aplican a elementos de tipo carácter severifican en orden alfabético, tomando en cuenta elorden del código ASCII. De la siguiente manera:

0 < 1 < 2 ... < 9

a < b < c ... < z

A < B < C ... < Z

EJERCICIOS

¿Cuál es el resultado de las siguientesexpresiones?

a. 3+6*14 = 3 + 84 = 87

b. 8+7*3+4*6 = 8 + 21+ 24 = 29+24 = 53

c. -4*7+2^3/4-5 = -4*7+8/4-5 = -28+2-5 = -26-5 = -31

EJERCICIOS PARA RESOLVER

Encontrar el valor de la variable z.

a. z = 4.0 * 5 b. x=3.0 y=2.0 z=x^y-y

c. z=5 x=3 z=z*x

Deducir el resultado de las siguientes instruciones.

Int x,y;

x=1;

y=5;

printf (x,y)

EJERCICIOS PARA RESOLVER

Deducir el valor de las siguientes expresiones;siendo a=5, b=25 y c=10

a. x = a+b+c

b. x = a+b*c

c. x = a+b/c

d. x = a+b\c

e. x = a+b%c

f. x = (a+b)\c

g. x = a+(b/c)

EJERCICIOS PARA RESOLVER

Calcular el valor de las siguientes expresiones:

a. 8+7*3+4*6

b. -2^3

c. (33+3*4)/5

d. 2^2*3

e. 3+2*(18-4^2)

f. 16*6-3*2

g. 3*3+4-7^2\7

Escribir un algoritmo que intercambie los valoresde dos variables a y b.

EJERCICIOS PARA RESOLVER

Deducir los valores que toman las variables a,b yctras la ejecución de las instrucciones.

a. a=4 b. a=5b=a b=a+6b=a+3 a=a+1

b=a-5

c. a = 3 d. a =10b = 20 b = 5c = a+b a = bb = a+b b =aa = b-c

EJERCICIOS PARA RESOLVER

Escribir las siguientes expresiones en forma de expresionesalgorítmicas:

a. M + P b. M+ N

N P-Q

c. M+N d. M+N

P+Q P

Q - R

S

e. Sen(x)+Coseno(x)

tan(x)

f. -b+√b2-4ac

2a

FUNCIONES INTERNAS

Las operaciones que se requieren en los programas exigen ennumerosas ocasiones, además de las operaciones aritméticasbásicas, un número determinado de operadores especialesque se denominan Funciones Internas, incorporadas oestándar.

Ejemplo:Expresión Resultadoraiz2 (25) 5redondeo (6.5) 7redondeo (3.1) 3redondeo (-3.2) -3trunc (5.6) 5trunc (3.1) 3trunc (-3.8) -3cuadrado (4) 16abs (9) 9abs (-12) 12

FUNCIONES INTERNAS

Función Descripción Argumento Resultado

abs(x) Valor Absoluto de (x) Entero o Real Entero o Real

sin(x) Seno de (x) Entero o Real Real

cos(x) Coseno de (x) Entero o Real Real

asin(x) Arco Seno de (x) Real Real

acos(x) Arco Coseno de (x) Real Real

atan(x) Arco tangente de (x) Real Real

exp(x) Exponencial de (x) Real o Entero Real

log(x) Logaritmo natural de (x) Real o Entero Real

log10(x) Logaritmo base 10 de (x) Real o Entero Real

ceil(x) Aproxima x al entero Real Entero

inmediato superior

pow(x,n) x elevado a la n Real o Entero Real o Entero

sqrt(x) Raíz Cuadrada de (x) Real o Entero Real

CONVERSIÓN DE TIPO

En las asignaciones no se pueden asignar valores auna variable de un tipo diferente del suyo. Sepresentará un error si se trata de asignar valoresde tipo carácter a una variable numérica o un valornumérico a una variable tipo carácter.

ENTRADA/SALIDA DE DATOS EN C

Como se mencionó anteriormente, es necesarioconocer las entradas y las salidas del problemapara poder resolverlo. Para que C reciba estosdatos utilizamos las funciones de biblioteca scanfpara la entrada y printf para la salida. Su sintaxises la siguiente:

//Lee el valor y lo guarda en una variable

scanf ("%d", &variable);

//Imprime en pantalla el texto y el valor

printf ("El valor es %d", variable);

ENTRADA/SALIDA DE DATOS EN C

#include <stdio.h>

#include <conio.h>

#include <math.h>

Void main()

{

int r, a, p;

printf ("Programa que calcula el área y perímetro de uncirculo");

printf ("\nIntroduce el radio: ");

scanf ("%d", &r);

a = M_PI * pow(r,2);

p = M_PI * (r+r);

printf ("\nEl área es: %d", a);

printf ("\nEl perímetro es: %d", p); getch();

}

ESCRITURA DE ALGORITMOS/PROGRAMAS

Todo programa en C consta de una o másfunciones, una de las cuales se llama main. Elprograma siempre comenzará por la ejecución dela función main. Las definiciones de las funcionesadicionales pueden preceder o seguir a main.

Cada función debe contener:

Una cabecera de la función, que consta del nombrede la función, seguido de una lista opcional deargumentos encerrados con paréntesis.

Una lista de declaración de argumentos, si seincluyen éstos en la cabecera.

Una sentencia compuesta, que contiene el resto dela función.

ESCRITURA DE ALGORITMOS/PROGRAMAS

/*Estructura de un programa en C*/

#include <nombre_de_la_biblioteca>

#define nombre_de_la_constante valor

//Función principal void main()

{

definición de variables; instrucciones delprograma;

}

EJEMPLO DE UN PROGRAMA EN C

/*Primer programa en C*/

#include <stdio.h>

#include <conio.h>

void main()

{

//Imprime el texto en pantalla

printf ("Hola, mundo!");

getch();

}

EJERCICIOS

Resolver los ejercicios dellibro de Joyanes desde lapágina 112 a la página 127.