Sentencia: switch
Esta sentencia permite seleccionar un grupo de sentencias entre varios grupos disponibles.
Formato:
Switch (expresión) sentencia(s);
Donde: expresión devuelve un valor entero o character.
...
Las sentencias incluidas es generalmente una sentencia compuesta que especifica opciones
posibles a seguir para cada opción de la primera sentencia y debe ir precedida por la etiqueta
“CASE” es decir:
Ejemplo:
Case expresión 1:
sentencia 1;
Eleccion = getchar();
sentencia 2;
Switch (eleccion) {
case ´R´:
sentencia N;
printf(“Voto Rojo”);
Case expresión 2:
scanf(“%d”, &cr);
sentencia 1;
case ´B´:
sentencia 2;
printf(“Voto Blanco”);
scanf(“%d”, &cb);
sentencia N;
case ´V´:
Default:
printf(“Voto Verde”);
sentencia 1;
scanf(“%d”, &cv);
sentencia 2;
default:
printf(“Error”);
sentencia N;
}
...
...
...
Funciones: Son bloques de instrucciones que realizan una tarea especifica la cual se maneja como una unidad
lógica.
Declaración de Funciones
Formato:
Nombre – función (parámetros Formales)
Son los identificadores que son declarados y
usados en la función con la finalidad de recibir los
valores enviados desde el programa principal.
tipos – parámetros formales;
{
tipos – variables locales;
sentencia(s);
return();
/* Retorna Valores */
}
Llamar a una Función
Formato:
Nombre – función (parámetros Actuales)
Las Variables deben coincidir: * Cantidad
* Orden
* Tipo
Son identificadores declarados y usados en el programa
principal y que permiten recibir los datos del programa
principal y enviarlo a la función.
Ejemplo:
Diseñe una función que multiplique dos números enteros.
#include <stdio.h>
/*Primera Función */
Main()
{
int x, y, r;
printf(“Ingrese dos Números \n”);
scanf(“%d %d”, &x, &y);
r=mul(x, y);
printf(“El Resultado de la Función = %d”, r);
}
Nombre de la función
r = mul(a, b)
int a, b;
{
int c;
c = a*b;
return(c);
}
Retorna el valor de la función
2.- Hacer el saludo de presentación con una llamada a una función.
/* Saludo con funcion */
#include <stdio.h>
void contestar (char []);
main()
{
char nombre[20];
printf("Hola, me llamo Ordenador, y tu?\n");
scanf("%s",nombre);
contestar(nombre);
}
void contestar(char *nombre)
{
printf("Me alegro de conocerte %s\n",nombre);
}
3. Escriba un programa que imprima un mensaje rodeado por un borde, utilizando
funciones para dibujar los elementos del borde.
/* Mensaje rodeado por un borde */
#include <stdio.h>
#define ANCHO 77
#define FILAS 4
void linea();
void lados();
main()
{
printf("\n\n\n\n");
linea();
lados();
printf(" *\t\t\t\t Bienvenido a C \t\t\t\t*\n");
lados();
linea();
printf("\n\n\n\n");
}
void linea()
{
int x;
printf(" ");
for (x=0; x<=ANCHO; ++x) putchar('*');
putchar('\n');
}
void lados()
{
int y;
for (y=0; y<=FILAS; ++y)
printf(" *\t\t\t\t\t\t\t\t\t\t*\n");
}
Arrays Unidimensional y Bidimensional
Son estructuras de datos que permiten almacenar en posiciones de memoria continuas los
diferentes datos. La particularidad de los arreglos en lenguaje C es que su puntero comienza
desde cero.
Para sus efectos de su declaración tenemos los siguientes formatos:
0
1
2
3
4
Formato Vector:
Tipo – dato array [expresión];
Donde:
Array = nombre del vector.
Expresión = Valor entero positivo que indica la dimensión
Ejemplo:
Cargar un Vector
Int x[100];
for (i = 0; i<100; ++i)
Float n[12];
scanf(“%d”, &x[i]);
Otra forma
#define MAX 200
...
Int x[MAX];
Salida de un Vector
for(i = 0; i<100, ++i)
printf(“Resultado = %d”, x[i]);
P
Formato matriz.
Otra forma
Tipo – dato array [exp1][exp2];
#define f 5
Donde: exp1 = cantidad de filas
#define c 5
exp2 = cantidad de columnas
main() {
int a[f][c], b[f][c];
1
2
V(0,0)
V(0,1) V(0,2) V(0,3)
...
0
1
2
3
0
3
Cargar una Matriz
for (i = 0; i < f; ++i)
4x4
for (j = 0; j < c; ++j)
scanf (“%d”, &a[i][j]);
Ejemplo:
float tabla[50][50];
int P[3][3];
Salida de una Matriz
for (i = 0; i < f; ++i)
for (j = 0; j < c; ++j)
printf(“Resultado = %d”, a[i][j]);
Ejercicio:
1.- Dado el siguiente esquema:
1
2
3
4
María
Art2
120
410
510
900
Art3
80
75
10
100
200
135
...
...
...
N
Ana
Luis
Pedro
Juan
Art1
200
450
120
180
a)
90
b)
c)
d)
e)
#include <stdio.h>
#include <conio.h>
#define MAX 100
Main()
{
char V[MAX];
int A[MAX][3], n, sum, i, j;
printf(“Introduzca Número de Vendedores”);
scanf(“%d”, &n);
if (n <= MAX) {
for (i = 0; i < n; ++i) {
Cargar simultáneamente los nombres de los
vendedores en un vector y la cantidad de artículos
vendidos por vendedor en una matriz
Sumar la cantidad de artículos por vendedor y
almacenarlo en un vector.
¿Cuál fue el vendedor que obtuvo la menor venta de
artículos?
Copiar la cantidad de los artículos uno en un vector.
Imprimir los requerimientos anteriores.
printf(“Nombre del Vendedor”);
scanf(“%s”, v[i]); }
for (j = 0; j < 3; ++j) {
printf(“Ingrese número de Articulo \n”);
scanf(“%d”, &A[i][j]);
sum + = a[i, j];
}
Z[i] = sum;
}
1. Genere un vector de tamaño 20 con números entre 0 y 10. Deje en un vector A
todos los números negativos y en un vector B todos los positivos o iguales a cero
#include <stdio.h>
#included <stdlib.h>
#define n 20
void main()
{
int v[n],a[n],b[n];
int i=0,j=0,k=0;
randomize();
mientras (i<n)
{
v[i]=random(11);
si (v[i]<0)
{ a[j]=v[i];
j++; }
else
{ b[k]=v[i];
k++; }
i++;
}
printf("\n"); /* Mostramos vector V */
for (i=0;i<n;i++)
printf(" %d ",v[i]);
printf("\n"); /* Mostramos vector A */
for (i=0;i<j;i++)
printf(" %d ",a[i]);
printf("\n"); /* Mostramos vector B */
for (i=0;i<k;i++)
printf(" %d ",b[i]);
getchar();
}
2. Genere un vector de tamaño 10 con números reales leídos desde el teclado.
Calcule el promedio e indique cuantos elementos del vector son mayores que el
promedio y cuantos menores o iguales.
#include <stdio.h>
#included <stdlib.h>
#define n 10
void main()
{
float v[n], suma=0, promedio;
int i=0,contmay=0,contrest=0
mientras (i<n)
{
printf(“\nIngrese dato “);
scanf(“%f”,&v[i]);
suma=suma + v[i];
i++;
}
promedio=suma/n;
i=1
mientras (i<10)
{
si (v[i]> promedio)
contmay++;
else
contrest++;
i++;
}
printf("\n"); /* Mostramos resultados */
printf(“\n Promedio = %g”,promedio);
printf("\n La cantidad de elementos
mayores que el promedio son %d
",contmay);
printf("\n La cantidad de elementos
menores o iguales al promedio son %d
",contrest);
getchar();
}
3.
Ingresar
elementos
numéricos a una matriz de
20x20 por filas.
#include <stdio.h>
#include <conio.h>
void main()
{
int a[10][10], i, j;
i=0;
while (i<10)
{
j=0
while (j<10)
{
printf(“ingrese dato”);
scanf(“%d”,&a[i][j]);
j++;
}
i++;
}
}
4. Sea A una matriz de 5x 4, llena de números enteros positivos, escribir
la fila que contiene el número menor y la columna que tenga el número
mayor.
#include <stdio.h>
#include <conio.h>
void main()
{
int a[5][4],k=0,l=0, fila, columna;
while (k<5)
l=0
while (l<4)
{
printf(“ingrese elemento”);
scanf(“%d”,&a[k][l];
l++;
}
k++;
}
menor=a[0][0]; mayor=a[0][0];k=0;
while (k<5)
l=0
while (l<4)
{
if (menor > a[k][l])
{
menor= a[k][l];
fila=k;
}
if (mayor < a[k][l])
{
mayor=a[k][l];
columna=l;
}
l++;
}
k++;
}
printf(“la fila que contiene el menor
es : %d “, fila);
printf(“la columna que contiene en
mayor =%d “,columna);
}
5. Sumar las matrices A y B (ambas de dimensión 10x4), dejarla en C, imprimir C.
#include <stdio.h>
#include <conio.h>
void main()
{
int a[10][4], b[10][4], c[10][4], j, i;
i=1;
while (i<10)
j=1
while (j<4)
{
printf(“ingrese elemento de a “);
scanf(“%d”,&a[i][j]);
printf(“ingrese elemento de b”);
scanf(“%d”,&b[i][j]);
c[i][j]=a[i][j] + b[i][j];
j++;
}
i++
}
i=1;
while (i<10)
j=1
while (j<4)
{
printf(“elemento de c %d”,c[i][j]);
j++;
}
i++
}
Descargar

Sectima Clase. Funciones y Matrices (Lenguaje C)