En el lenguaje C el ingreso de datos por teclado se hace mediante la función scanf()
scanf() es una función que lee datos ingresados por teclado y se los asigna a una variable indicada. Esta función también maneja caracteres de sustitución como lo hace printf(), con el fin de especificar los datos que se están leyendo.
Modo de uso:
scanf("%d",&variableEntera); scanf("%c",&variableCaracter); scanf("%f",&variableReal); Veamos un ejemplo: #include <stdio.h> void main() { int numero; //Declarando variable entera printf("Ingrese un numero: "); //Solicitando al usuario que ingrese un numero scanf("%d"&numero); //Leyendo el número solicitado printf("El numero que ingreso es %d", numero); //Mostrando el número ingresado por teclado } En esta función aparece un "nuevo componente" del lenguaje c, el operador "&", llamado operador de dirección. Este operador devuelve la dirección de memoria en la que se alojan los datos de una variable, la función scanf() usa esta dirección para insertar directamente en este espacio de memoria los datos leidos desde el teclado. Veamos algunos ejemplos de la apliación de la función scanf(): 1. Escriba un programa que solicite por teclado la longitud del radio de un círculo y que muestre por pantalla el área y perímetro del mismo. Solución: #include <stdio.h> #define PI 3.14 void main() { //Declaración de variables float radio, perimetro, area; printf("Ingrese el valor del radio del circulo: "); scanf("%f",&radio); //leyendo datos desde el teclado perimetro = 2*PI*radio; //Calculando el perímetro del círculo area = PI*r*r; //Calculando el área del círculo //Mostrando en pantalla los resultados printf("El area del circulo es : %.2f\n",area); printf("El perimetro del circulo es: %.2f",perimetro); } 2. Escriba un programa que solicite por teclado las longitudes de la base y altura de un rectángulo y que muestre por pantalla el área y perímetro del mismo. Solución: #include <stdio.h> void main() { //Declaración de variables float base, altura, perimetro, area; printf("Ingrese el valor de la base del rectangulo: "); scanf("%f",&radio); //leyendo datos desde el teclado printf("Ingrese el valor de la altura del rectangulo: "); scanf("%f",&radio); //leyendo datos desde el teclado perimetro = 2*base + 2*altura; //Calculando el perímetro del rectángulo area = base*altura; //Calculando el área del rectángulo //Mostrando en pantalla los resultados printf("El area del rectangulo es : %.2f\n",area); printf("El perimetro del rectangulo es: %.2f",perimetro); }
En lenguaje C la función más usada para mostrar información por pantalla se llama printf().
Si solo queremos mostrar un mensaje por pantalla (cadena de caracteres) lo hacemos de la siguiente manera:
printf(«mensaje»);
Pero printf() no se limita a sólo mostrar cadenas de caracteres, sino que con esta función podemos mostrar valores de variables mediante el uso de caracteres conocidos como «caracteres de sustitución».
¿Qué son los caracteres de sustitución?
Son caracteres que serán sustituidos por valores de variables al momento de mostrar el mensaje por pantalla.
En la siguiente tabla se muestran algunos caracteres de sustitución:
Carácter de sustitución |
Tipo de dato representado |
%d |
int |
%c |
char |
%f |
float |
%s |
cadena de caracteres |
¿Cómo se usan los caracteres de sustitución?
Veamos el uso en el siguiente programa:
#include <stdio.h> void main() { //Declarando variables int a,b,suma; //Asignando valores a las variables a=10; b=15; suma=a+b; // Calculando la suma de a y b printf("La suma de %d + %d = %d",a,b,suma); // Mostrando en pantalla el resultado }
Los carácteres de sustitución serán reemplazados por los valores de las variables en el orden que se las coloquen.
Por pantalla se mostrará
La suma de 10 + 15 = 25
Si queremos mostrar en pantalla el símbolo %, sólo debemos escribir %%
También se le puede mostrar por pantalla los valores de variables con un formato, como por ejemplo un número flotante con un número determinado de decimales
Ejemplo:
#include <stdio.h> void main() { //Declarando variables float a,b,division; //Asignando valores a las variables a=10; b=3; division=a/b; // Calculando la división entre a y b printf("%f dividido para %f = %f",a,b,division); // Mostrando en pantalla el resultado sin // formato /*Se mostrará por pantalla 10.000000 dividido para 3.000000 = 3.333333 */ printf("%.2f dividido para %.2f = %.2f",a,b,division); // Mostrando en pantalla el resultado // con un formato de 2 decimales /*Se mostrará por pantalla 10.00 dividido para 3.00 = 3.33 */ } Como hemos visto en este ejemplo, en el caso de los números flotantes se puede mostrar un número de decimales deseado colocando entre el %f un punto con un número que representa el número de decimales a mostrar. También es posible mostrar tabulaciones, retornos de carro, etc, gracias a otro tipo de caracteres conocidos como secuencias de escape. En La siguiente tabla se muestran algunas secuencias de escape.
Secuencia | Carácter | Acción |
\n | Nueva línea | Mueve el cursor a una nueva línea |
\t | Tabulador horizontal | Mueve el cursor hacia la siguiente posición de tabulador |
\\ | Barra Invertida | Muestra el carácter de barra invertida “\” |
\” | Comilla doble | Muestra el carácter de comilla doble “ |
He publicado una página en la cual he recopilado varios videos publicados en youtube de un curso de PHP, son muy buenos… Espero les guste XD…
Para ingresar al tutorial de PHP hacer clic aquí.
Espero vuestros comentarios.
Las variables en el lenguaje c pueden ser de diferentes tipos de datos, de acuerdo a la necesidad de almacenar datos que surja al momento del desarrollo del programa.
El lenguaje C diferencia MAYUSCULAS y minúsculas, por lo que no es lo mismo VARIABLE1 que variable1 ni que VariAble1.
La declaración de variables en C se realiza de la siguiente manera:
tipo_dato nombre;
Ejemplos:
char letra; int edad; float costo; También se pueden declarar varias variables de un mismo tipo en una sola línea de la siguiente forma: tipo_dato variable1,variable2, variable3 , ... , variableN; Ejemplos: int hora, minutos, segundos, numero; float radio, perimetro, area, costo; char letra1, letra2, letra3; También podemos asignarle un valor a la variable al momento de declararla: tipo_dato variable1=valor1; Ejemplos: int hora=19, minutos=0, segundos=11; char letraConocida='a', letraDesconocida; float precioPizza=10.75, precioSoda=1.25; Constantes Las constantes en lenguaje C se definen de la siguiente forma: #define NOMBRE valor Ejemplos: #define PI 3.14 #define TAMANIO 100 #define CARACTER 'u' A diferencia de las variables, sólo se puede crear una cosntante por línea de código y debe asignársele un valor al momento de definirse la misma, ya que las constantes jamás cambian su valor. Ubicación de las variables y constantes en un programa en C Las constantes se definen despúes de la inclusión de los archivos cabecera, y las variables deben ser declaradas al inicio de la función principal (main()). Ejemplo: //Inclusión de cabeceras #include <stdio.h> //Definición de constantes #define CONSTANTE1 16 #define CONSTANTE2 20 void main() { //Declaración de variables int variable1=123, variable2=456; char caracter1='a'; float f; }
El lenguaje de programación C maneja 3 tipos de datos primitivos que son: enteros, reales y carácteres
A continuación se muestran los detalles de los tipos de datos soportados:
Enteros
Nombre |
Rango |
Espacio en memoria |
int |
Máximo = 2,147,483,647 Mínimo = -2,147,483,648 Unsigned (sin signo) Máximo = 4294967295 Mínimo = 0 |
4 bytes |
|
Máximo = 32767
Mínimo = -32768 Unsigned (sin signo) Máximo = 65,535 Mínimo = 0 |
2 bytes |
|
Máximo = 9,223,372,036,854,775,807 Mínimo = 9,223,372,036,854,775,808 Unsigned (sin signo) Máximo = 18,446,744,073,709,551,616 Mínimo = 0 |
8 bytes |
Reales (coma flotante)
Nombre |
Rango |
Espacio en memoria |
float |
Exponente Máximo = 10^37 Exponente Mínimo = 10^-37 |
4 bytes |
|
Exponente Máximo = 10^308 Exponente Mínimo = 10^-308 |
8 bytes |
Carácteres
Nombre |
Rango |
Espacio en memoria |
char |
Máximo = 255 Mínimo = 0 |
1 byte |
C es un lenguaje de programación de propósito general creado en 1972 por Ken Thompson y Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL, que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje.
Convierte el programa fuente en otro archivo fuente, durante este proceso se eliminan los comentarios, se incluyen los contenidos de los ficheros declarados con» #include <archivo>» (cabeceras) y se sustituye las instrucciones declaradas con #define
Transforma el código fuente proveniente del precompilador, en un archivo en lenguaje de máquina (fichero objeto).
El fichero objeto es un archivo en lenguaje de máquina que no puede ser ejecutado, sino que necesita ser enlazado con las bibliotecas del sistema operativo; el enlazador genera un archivo binario que puede ejecutarse.
Las bibliotecas son archivos que contienen el código de funciones precompilados que realizan operaciones requeridas en nuestro programa.
Nuestro primer programa
La sintaxis del lenguaje de programación C es sencilla, cuando programemos en C sólo debemos recordar:
Ejemplo de un programa en C:
//Incluyendo la cabecera en la que se encuentra definido el procedimiento printf() #include <stdio.h> /*Función principal, todas las instrucciones encontradas en esta función se ejecutarán directamente*/ void main() { printf("Hola Mundo"); //Procedimiento que muestra en pantalla un mensaje }
1. Escriba un algoritmo que pida el ingreso por teclado de dos números enteros y que muestre por pantalla la suma, resta, producto y división de los mismos.
Solución
inicio
//Declarando variables a usar
var entero A var entero B var entero suma var entero resta var entero producto var entero division escribir("Ingrese un numero: ") //Solicitando ingreso de datos por teclado leer(A) //Leyendo el primer número desde el teclado escribir("Ingrese un numero: ") //Solicitando ingreso de datos por teclado leer(B) // Leyendo el segundo número desde el teclado // Realizando operaciones suma = A +B resta = A - B producto = A*B division = A/B //mostrando resultados escribir("La suma es: ") escribir(suma) escribir("La resta es: ") escribir(resta) escribir("El producto es:") escribir(producto) escribir("La division es: ") escribir(division) fin
2. Escriba un algoritmo que muestre por pantalla un menú y que solicite el ingreso por teclado de una opción del mismo; cuando se haya elegido dicha opción le indique al usuario su elección.
Solución:
inicio //Declarando las variables var entero opcion //Mostrando el menú escribir("1. Opción 1") escribir("2. Opción 2") escribir("3. Opción 3") escribir("4. Salir") escribir("Ingrese una opción: ") //Solicitando el ingreso de datos por teclado leer(opcion) //Leyendo la opción ingresada por teclado segun_sea (opcion) caso 1: //opción 1 escribir("Usted ha elegido la opción 1") interrumpir caso 2: //opción 2 escribir("Usted ha elegido la opción 2") interrumpir caso 3: //opción 3 escribir("Usted ha elegido la opción 3") interrumpir caso 4: //opción 4 escribir("Usted ha elegido la opción Salir") interrumpir otros: //Si no coincide con los casos anteriores escribir("Opcion no válida") interrumpir fin_segun fin
En este algoritmo se utilizó una estructura de selección que nos permite relacionar un conjunto de acciones al valor de la variable dada como parámetro, este menú está constituido de 4 opciones (opción 1, opción 2, opción 3 y salir), las cuales están definidas en cada caso; además cuando se ingresa un valor que nocoincide con los casos definidos, se realizan las acciones descritas en «otros«.
3. Escriba un algoritmo que repita una cadena de caracteres un número de veces dado.
Solución:
Existen muchas formas de realizar esto:
inicio //declarando variables var cadena cadena1 var entero veces var entero contador escribir("Ingrese una cadena de caracteres") leer(cadena1) escribir("Ingrese el número de veces que desea que se repita la cadena") leer(veces) contador = 0 //Inicializando el contador mientras(contador < veces ) //Repitiendo mientras el contador sea menor que el número escribir(cadena1) //de veces contador++//incrementando el contador fin_mientras fin Otra forma inicio //declarando variables var cadena cadena1 var entero veces var entero contador escribir("Ingrese una cadena de caracteres") leer(cadena1) escribir("Ingrese el número de veces que desea que se repita la cadena") leer(veces) /*La estructura "para" asigna el un valor al contador, evalúa una condición y si esta se cumple, se realizan las acciones indicadas, luego se incrementa el contador */ para contador=0 hasta contador<veces contador++ escribir(cadena1) fin_para fin
Muchos lenguajes de programación necesitan que se declaren variables y definan constantes antes de usarlas.
En nuestro pseudocódigo vamos a declarar las variables de la siguiente forma:
var tipoDato nombreVariable
Ejemplos:
var entero nota
var caracter letra
var real costo
Hay que definir las constantes también:
definir nombre valor
Ejemplos:
definir PI 3.14
definir RADIO 3
definir JUGADORES 5
¿Por qué las variables y constantes deben ser declaradas y siempre al inicio ?
Para ilustrarlo mejor voy a poner un ejemplo sencillo: si nos contratan para construir una pared, el cliente SIEMPRE pregunta – ¿Y que necesita para construirla? -, en ese momento como buenos obreros debemos pensar en los recursos que usaremos para realizar nuestro tabajo (bloques, cemento, arena, herramientas, etc); no sería bueno que mientras construimos nuestra pared pidamos al cliente que compre más material porque no lo habíamos incluido en nuestra lista (el cliente se enfadaría y con mucha razón), y tampoco usamos cosas que no tenemos. Antes de desarrollar nuestro algoritmo, debemos calcular las cosas que necesitamos y entre ellas están las variables y constantes que usaremos.
Ejemplos:
1.- Nos piden que desarrollemos un programa que dado el radio calcule el perímetro de un círculo.
Solución:
El perímetro de un círculo es igual a 2*PI *radio, y como todos conocemos el valor de PI es 3.14
El algoritmo a usar será el siguiente:
inicio
// Definiendo las Constantes
definir PI 3.14
// Declarando las Variables
var real radio
var real perimetro
escribir(«Ingrese el radio del círculo«) //Solicitando el ingreso de el radio
leer(radio) //leyendo datos desde el teclado
perimetro = 2*PI*radio //Calculando el perímetro
escribir(«El perímetro es: «) //Mostrando un mensaje indicando que se mostrará el resultado
escribir(perimetro) //Mostrando el resultado
fin
2.- Nos piden que desarrollemos un programa que proporcionándole el la longitud de un lado calcule el volúmen de un cubo.
Solución:
El volúmen de un cubo es igual al lado al cubo lo que es equivalente a lado*lado*lado.
El algoritmo a usar será el siguiente:
inicio
// Declarando las Variables
var real lado
var real volumen
escribir(«Ingrese la longitud del lado del cubo«) //Solicitando el ingreso de datos
leer(lado) //leyendo datos desde el teclado
volumen = lado*lado*lado //Calculando el volúmen
escribir(«El volúmen es: «) //Mostrando un mensaje indicando que se mostrará el resultado
escribir(volumen) //Mostrando el resultado
fin
Los comentarios son áreas del código que el desarrollador inserta para hacerlo más inteligible pero que el compilador no tomará en cuenta al momento de generar código de máquina, dando la libertad al desarrollador de escribir lo que quiera en las áreas del código establecidas como comentarios.
Usaremos el símbolo “//” (doble slash) para establecer áreas de comentarios, todo lo que se escriba después de este símbolo en la línea no será tomado en cuenta al momento de compilar nuestro código fuente. También podemos escribir comentarios entre los símbolos “/*” y “*/” con el fin de usar varias líneas para los mismos.
Ejemplos:
/* Este algoritmo pide un número y muestra en pantalla la mitad
Autor: Leo
Fecha de creación: 8/01/2009 */
inicio
escribir(“Ingrese un número”) //solicitando ingreso por teclado
leer(A) //leyendo datos ingresados por teclado
escribir(A/2) //mostrando la mitad del número ingresado
fin
Los comentarios son muy útiles para los desarrolladores ya que en a veces hay que revisar código escrito por otras personas y generalmente es dificultoso entender lo que pensó aquella persona al momento de escribir la instrucción, además se puede especificar datos importantes como autor, fecha de creación, licencia y términos de uso, etc.
Los operadores son símbolos que nos permiten realizar diferentes operaciones en un programa tales como suma, resta, división, etc.
Operadores aritméticos
En una división de enteros siempre obtenemos un cociente entero y un residuo entero, el operador resto realiza la división y devuelve el residuo de la misma. Si el resultado de a%b es igual a cero, entonces a es múltiplo de b.
Ejemplos:
28 % 6 -> el resto de 28 dividido para 6 es 4
23 % 10 -> el resto de 23 dividido para 10 es 3
30 % 3 -> el resto de 30 dividido para 3 es cero
Operadores de asignación
Un operador de asignación es aquel que modifica el valor de una variable.
Igualdad =
Este operador asigna el valor de una expresión a una variable, es decir, reemplaza el valor almacenado en la variable por otro.
Ejemplos:
S = 19 -> Cambia el valor de S a 19
A = 30 + 15 -> Realiza la operación “30+15” y asigna el resultado a “A”
Q = S + A -> Realiza la operación “S + A” y asigna el resultado a “Q”
A = A + 1 -> Realiza la operación “A+1” y asigna el resultado a “A”
Operadores incrementales
Aumenta en uno el valor de una variable.
Ejemplos:
S++ -> Le suma uno al valor de S
Disminuye en uno el valor de una variable.
Ejemplos:
S— -> Le resta uno al valor de S
Operadores Relacionales
Son aquellos operadores binarios que relacionan una expresión a un valor lógico verdadero o falso.
Ejemplos:
A == 10
B >= 15
D%10 != 0
Operadores lógicos
Son aquellos operadores binarios que permiten combinar resultados de otras expresiones relacionales.
Ejemplos:
A<2&&X!=0 si A es menor que 2 y X es diferente que 0, entonces la expresión es verdadera
B>3||Q>0 si B es mayor que 3 o Q es mayor que 0, entonces la expresión es veradera
!(C>X) si C es mayor que X, entonces la expresión es falsa ya que el operador NOT invierte el valor de la expresión.