[Aportes] Introducción a la programación en C

Estado
Cerrado para nuevas respuestas.

Zirelay.

Newbie Lvl 4
Hola a todos. Resulta que hace unos días se me ocurrió hacer un aporte de introducción a la programación, aplicada al lenguaje C, para todos aquellos que no saben por donde arrancar a la hora de comenzar a programar.
No lo dudé y comence a escribir. Pero demoré mas de lo pensado y ya mañana tengo que viajar nuevamente para estudiar, por lo que se me acaba el tiempo libre.

Decidí completar lo mejor posible para dejarlo en pausa y mostrar lo que llegué a armar hasta el momento, ya que si bien no es mucho, es una muy buena base para los que están en 0 y tienen fervientes ganas de aprender.

Índice

1) Introducción a la programación.

2) Lenguaje C.

3) Variables y datos.

4) Operadores básicos.

5) Actividades.[DOUBLEPOST=1405039814,1405039793][/DOUBLEPOST]


Bienvenidos

Damos comienzo al primer capítulo de este curso orientado a la programación.

Esta introducción es algo básica, pero es indispensable tener en claro los contenidos que figuran en ella, ya que están para formar una base sólida sobre el concepto de la programación y como trabaja una computadora.

Si realmente quieren aprender, tomen en cuenta la práctica.

Los únicos requisitos que necesitarán son:

- Tiempo.
- Paciencia.
- Dedicación.
- Voluntad.
- Y sobretodo, ganas de aprender.

Ok, comenzamos.


Introducción a la programación

¿Que significa programar?

Un programa de computación es simplemente un conjunto de instrucciones que le dicen a la computadora cómo realizar una tarea en particular.
El usuario interactua con la computadora, de manera que éste, al brindarle cierta información, la computadora la procesa y hace con ella lo que él le pida.

Vamos a un ejemplo de la vida cotidiana, el uso de la calculadora.exe: si le ingresamos dos números y le pedimos que los sume, ella lo hará y nos lo mostrará en pantalla al resultado.
Pero esto no sucede por arte de magia, hay toda una programación detrás de esa calculadora para que al nosotros ingresarle dos números nos muestre el resultado.

Seguro en este momento estén queriendo saber de que manera se programaría una calculadora para que me resuelva las operaciones aritméticas básicas (suma, resta, multiplicación y división).
Para ello debemos hacer uso de un lenguaje de programación.

¿Que son los lenguajes de programación?

Si nos remontamos un poco en la historia, algo que seguramente muchos ya lo sepan, las computadoras solo interpretaban instrucciones en un lenguaje específico, el de más bajo nivel, conocido como lenguaje de máquina. Éste era muy dificil de programar, ya que consistía en cadenas de 1 y 0 (10001 01101 00101 <- son 3 cadenas de bits), el famoso sistema binario.
Con el tiempo, los científicos comenzaron a reemplazar cadenas de 1 y 0 por palabras en inglés. Las codificaron y crearon así un lenguaje de mayor nivel llamado assembler, o ensamblador.
Entonces, en vez de usar una cadena en binario (10000) (para procesadores de 32 bits), se usa una palabra (add) para representar la misma instrucción.
En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que las secuencias de números binarios.
Un lenguaje de bajo nivel solo es interpretado por la computadora en la que fue programado, si se traslada este programa a otra pc con distinto procesador, éste no funcionará.

A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel.
La característica de los lenguajes de alto nivel es que no dependen de las características físicas de la computadora y se asemejan al lenguaje humano.
Además, una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.

Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario utilizar un compilador para traducirlo a lenguaje máquina.

Repaso:

Lenguaje de máquina: Binario.
Lenguaje de bajo nivel: Assembler, o ensamblador. Depende de las características físicas del ordenador.
Lenguaje de alto nivel: Es parecido al lenguaje humano y no depende de las características físicas del ordenador.
Compilador: Traduce el lenguaje de programación a lenguaje de máquina.

A esta altura es común que se generen muchas dudas, pero trataremos de ver esto con un ejemplo básico.

Supongamos que queremos hacer un programa que al ingresarle dos números nos muestre la suma.

En binario se vería algo así:

Código:
11010 10101 00010 10100 01100 10101 01010
01010 10101 00101 00101 01101 01010 10101
10101 01010 10101 01011 00100 01100 10101
10101 10101 01010 11010 10101 01001 10010
10101 10101 01010 10101 01010 10101 01010
00110 01010 10101 01010 10101 10010 10101
11010 10101 00010 10100 01100 10101 01010
01010 10101 00101 00101 01101 01010 10101
10101 01010 10101 01011 00100 01100 10101
10101 10101 01010 11010 10101 01001 10010
10101 10101 01010 10101 01010 10101 01010
00110 01010 10101 01010 10101 10010 10101
11010 10101 00010 10100 01100 10101 01010
01010 10101 00101 00101 01101 01010 10101
10101 01010 10101 01011 00100 01100 10101
10101 10101 01010 11010 10101 01001 10010
10101 10101 01010 10101 01010 10101 01010
00110 01010 10101 01010 10101 10010 10101
En ensamblador algo así:

Código:
.model small
.stack
.data
valor db ?
.code
.startup
mov ah, 01h
int 21h
sub al, 30h
mov valor, al
mov ah, 01h
int 21h
sub al, 30h
add al, valor
mov dl, al
add dl, 30h
mov ah, 02h
int 21h
.exit
end

Y en, por ejemplo, C++ (No confundir con C, son dos lenguajes distintos, C++ deriva del C, pero no es C)

Código:
int a;
int b;
cin >> a;
cin >> b;
cout << "Resultado es: " << a+b << endl;
¿Se nota la diferencia?

Imaginensé el tiempo que llevaría escribir un programa más complejo en cada uno de los lenguajes. Mientras que en binario tardaríamos 3 semanas, en assembler 3 dias, y en un lenguaje de alto nivel 3 minutos.

Obviamente estos tiempos son exagerados e ilustrativos, al igual que los códigos. Pero es para tener en claro el motivo por el cual surgen los lenguajes de programación, y darles una idea de que no todo es arte de magia, que no por escribir a+b la computadora lo leerá de la misma manera que nosotros, sino que hay todo un proceso detrás de nuestras pantallas que la mayoría de las veces no tenemos en cuenta.

Muy bien, sigamos.


Componentes de una computadora

Memoria:

La memoria es el lugar donde se almacenan temporalmente los datos y programas que la computadora está procesando o va a procesar en un determinado momento.
¿Por qué temporalmente?
Porque la memoria esta compuesta por capacitores que retienen 1 bit, que es 1 o 0. Estos, al funcionar con carga eléctrica, una vez que se apaga la computadora, vuelven todos sus valores a 0.
Imagínen la cantidad de ellos que hay en una memoria ram de 4 GB (alrededor de 32.000.000.000).
Es decir, si estabamos escribiendo un bloq de notas, no lo guardamos en disco, y se nos corta la luz, habremos perdido toda la información que se estaba reteniendo en memoria.

Ya vamos a entrar más en el tema. Por ahora solo deberán saber que está constituída por locaciones.
¿Qué quiere decir esto?
Una memoria de 4 GB de capacidad, tendrá 4.000.000.000 de locaciones. Cada una de ellas ocupa 1 byte (8 bits)

Si no conocen las medidas de unidades en informática abran el sopiler.

1 bit: puede valer 1 o 0
1 byte: son 8 bits (01101001) < Esto es un byte.
1 KiloByte (KB): 1024 bytes.
1 MegaByte (MB): 1024 KB.
1 GigaByte (GB): 1024 MB.
1 TeraByte (TB): 1024 GB.

Ejemplo:

2 GB son exactamente 2048 MB, o 2097152 KB, o 2.147.483.648 Bytes o 17.179.869.184 bits

¿Se entiende?

Supongamos que nosotros introducimos 2 números, y queremos saber su suma. (3 + 4 = 7)
En memoria sería algo así:

Código:
Locación      Valor

0000000     |   3   |    < Este valor entra primero.
0000004     |   4   |    < Este valor entra segundo.
0000008     |   7   |    > Este valor sale como resultado.
000000C     |   0   |    < Estas son locaciones de memoria
0000010     |   0   |    < que no se han usado todavía.
¿Se entiende?
Nosotros ingresamos el 3, luego el 4, el programa procesó esos datos almacenados en la memoria (los sumó), y nos devolvió un 7.

El procesador:

No vamos a entrar en detalle ya que no es relevante a esta altura del aprendizaje. Pero para tener en claro, si vamos al ejemplo anterior, el procesador sería quien toma los dos números y realiza la suma.

El disco:

Esta únidad de almacenamiento de datos no es volátil (no se pierden los datos si no hay energía electrica).
En él se guardan los archivos y todos los datos de la memoria que queremos conservar.


Hemos terminado con la introducción, espero que les haya servido para comprender un poco la lógica de las computadoras.
Si creen que algún concepto esta mal explicado, o tienen dudas, por favor consulten.

De todas formas, estos conocimientos logran madurar y adquirirse a lo largo del tiempo, así como también chocandonos con la cerca es cuando nos damos cuenta que debemos saltarla.
Con esto quiero decir que, por más teoría que leamos, hay cosas que logramos entenderlas una vez que interactuamos con ellas.[DOUBLEPOST=1405039838][/DOUBLEPOST]


Lenguaje C

Antes de comenzar con este capítulo quiero aclarar que el curso está basado en el de "El rincón del C". La diferencia está en la presentación de los contenidos, los ejemplos, y algunos conceptos un poco más detallados, que para quienes no están a tono con la programación, son más faciles de comprender.

¿Por qué C? El lenguaje C es uno de los más rápidos y potentes que hay hoy en dia. El sistema operativo Linux está desarrollado en C en su totalidad. Así que tengan en cuenta que aprender a programar en C no es una pérdida de tiempo, sino todo lo contrario.


Compiladores y editores

Como mencioné anteriormente, debemos contar con un compilador para traducir nuestro lenguaje de programación a lenguaje de máquina.
Seguramente estén preguntando ¿Y que hay del código? ¿Dónde lo escribo?
No tendrán que preocuparse por ello. Si bien el código puede escribirse en un archivo de bloq de notas, algo que sería muy engorroso a la hora de leerlo, existen editores que a sus vez son compiladores, y nos facilitan mucho más las tareas.

Yo les dejo aquí el mismo que estoy usando en este momento:

Descargar: DevCpp_4.9.9.2_setup

Les recomiendo utilizar este link, que es de la página oficial de Bloodshed, ya que la versión 5.x.x es una beta, y en la facultad algunos tuvieron problemas a la hora de compilar porque les tiraba errores en algunas instrucciones.

¡Y ahora si! Llegó el momento de hacer nuestro primer programa en C


Mi primer programa. "Hola mundo"

Muchos habrán oído hablar del "hola mundo". Es generalmente el primer programa que se suele escribir al iniciarse en un lenguaje de programación.

Una vez que terminen de escribir el código les quedará algo así:

No voy a usar imágenes ya que con el paso del tiempo pueden darse de baja y el th queda incompleto.

Vamos a escribir nuestro programa. Lo primero que haremos será instalar el Dev, y luego abrirlo.

Vamos a Archivo> Nuevo> Proyecto> Aplicación de consola.

Nos va a salir una ventana para guardar. Lo que guardaremos aquí será el código, por lo que les recomiendo crearse una nueva carpeta vacía y guardar todos los archivos allí.

Una vez hecho esto podremos escribir en la hoja, como si fuera bloq de notas.

Por defecto nos cargará las siguientes lineas:

Código:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    system("PAUSE");
    return EXIT_SUCCESS;
}
Borramos todo y comenzaremos a escribir desde 0.

Mis recomendaciones:

Sean ordenados, si quieren guardar los programas con su código fuente hagan una carpeta para cada uno, porque son 5 archivos por programa.
Escriban desde 0 cada nuevo programa, aunque tengan que modificar solo una linea. Es la única manera de plasmar los conocimientos y no tener que volver a leer capitulos anteriores.

Comenzamos!

Primero voy a mostrarles el código final, y luego les voy a hacer una descripción de cada renglón (línea) para que entiendan lo que se escribió.

Código:
#include <stdio.h>
#include <iostream>


int main()
{
    printf ("Hola soy un programa en C");   
    system("PAUSE");
    return 0;
}
Empezamos:

#include <stdio.h>
#include <iostream>
#include es una directiva, es decir, indíca que queremos agregar una biblioteca, en este caso <stdio.h> y <iostream>

Las bibliotecas sirven para decirle al compilador que hacer cuando ingresamos una palabra que cumple una función. En este ejemplo la palabra "printf".

Si no incluiríamos la biblioteca <stdio.h>, el compilador básicamente nos diría "¿Que carajos quiere decir printf ?"

La biblioteca <stdio.h> le dice: "printf quiere decir: mostra por pantalla el texto que está entre comillas."

Obviamente este es un ejemplo muy didáctico, pero más o menos por ahí viene la mano.

Luego hay un espacio entre líneas.

Esto no es relevante, al compilador le da igual, es solo para que nosotros mismos nos entendamos a la hora de leer el código.

Después:

Ésta es una función, que pide como retorno un valor entero (int).
No se preocupen por el momento, ya vamos a dedicar un capítulo entero a funciones únicamente.
Lo que deberán saber es que "main" significa principal, y todo programa tiene su función main, que es la que primero ejecutará en caso de haber más de una.

Esa llave significa el comienzo de una función. Es decir, ejecutamos el programa, este buscará la función main, y comenzará a leer las instrucciones que deberá ejecutar, osea, que tiene que hacer.

printf ("Hola soy un programa en C");
Esta línea es la primera que se ejecuta en la función principal, y le dice al programa que nos muestre "Hola soy un programa en C"

El uso de printf es: printf ("Texto");

Algo particular de este lenguaje es que es case sensitive (Sensible a las mayusculas), por lo que escribir Printf es distinto a printf.

El ";" es para decirle al programa que ya terminó la instrucción y que ejecute la próxima.

La próxima:

system("PAUSE");
La palabra system, definida por la biblioteca <iostream>, sirve para ejecutar un comando de la consola, en este caso "PAUSE", que sirve para que no desaparezca la consola una vez que muestre "Hola": Solo cuando presionemos una tecla éste seguirá. Si no entienden lo que hablo, borren la línea que dice system ("pause"); y ejecuten el programa.

Como declaramos la función como "int", debe volver un valor entero, en este caso 0.
Podría ser cualquier número entero, pero ya veremos que función cumplen.

Esta llave significa fin de función. Hasta allí llegó lo que debía realizar el programa.

Saldría por consola así:

Hola soy un programa en CPresione una tecla para continuar . . .
Si queremos saltar de línea un texto (Enter) tendremos que usar un comando.

printf ("Hola\n"); donde "\" sirve para utilizar ciertos caracteres, que de otra forma no podríamos. Se escribe utilizando la combinación ALT+92 (del teclado numérico)

Y ahora sí:

Hola soy un programa en C
Presione una tecla para continuar . . .
Como ven, son muchas cosas a tener en cuenta, y pareciera que nunca vamos a acordarnos todas.

La realidad es que este pensamiento solo dura 2 días. Si decidimos seguir adelante, las utilizaremos tan seguido que nos saldrán automáticamente, sin pensarlo.

Así que ánimo! vamos a seguir...[DOUBLEPOST=1405039865][/DOUBLEPOST]


Variables y datos

¿Qué es una variable?

Una variable contiene 1 tipo de dato.

Ejemplos:

Edad = 18

Número = 2.41

Nombre = Santiago

Edad, número, y nombre son variables.

18 es un dato de tipo número entero.

2,41 es un dato de tipo número racional.

Santiago es un dato de tipo caracter. De 9 letras.

¿Como llevamos esto a código?

Primero vamos a aclarar que las variables tienen algunas propiedades:

* Debe llevar letras de la "a" a la "z", números de "0" a "9" y "_".
* No puede empezar con un número. (1nombre no, nombre1 si)
* No puede ser una palabra reservada. (por ejemplo printf)
* Las variables son sensibles a las mayúsculas, por lo que EDAD, Edad, y edad, son 3 variables diferentes.

Las variables pueden contener 3 posibles tipos de datos:

* Números enteros (int) = [-5; 0; 145]
* Números racionales (float) = [-2,4; 3,543]
* Caracteres (char) = [A; B; G]

Y en código se declaran así:

tipo_de_dato variable;
variable = valor;

Entonces, vamos a escribir un programa que nos muestre el dato de una variable.

Variables tipo int:

Código:
#include <stdio.h>
#include <iostream>

int main()
{
    int edad;
    edad = 19;
    printf ("Hola, mi edad es: %i\n", edad);   
    system("PAUSE");    /*Sirve para que no se cierre*/
    return 0;
}
Vamos por líneas:

Aquí declaramos una variable como entera, es decir, en memoria se reservarán 4 bytes para almacenar el valor que contenga.

En esta parte, a edad, le asignamos como valor 19, usando "=" para que nos guarde ese valor en memoria.

Podríamos declararla como int edad = 19 también.
printf ("Hola, mi edad es: %i\n", edad);
Aquí ya vemos como pasar a texto el valor de una variable.

Simplemente usamos "%i", donde "%" quiere decir que se imprimirá un dato de la memoria, "i" que será un int, osea un valor entero, y luego de las comillas ", edad" donde el valor a imprimir será el de la variable edad.

Y por último:

system("PAUSE"); /*Sirve para que no se cierre*/
system ("Pause") para que no se cierre, y el texto entre /* y */ es un comentario, que nos sirve para acordarnos que fue lo que quisimos hacer en ese procedimiento.

Cuando llegue la hora de hacer programas más extensos, o leer viejos, que no recordamos bien su función, vamos a rogar haber comentado el programa para saber de que se trata.

Por consola nos quedaría algo así:

Hola, mi edad es: 19
Presione una tecla para continuar . . .
Las variables se pueden declarar tanto de manera Global como Local.

Digamos que las variables Globales se declaran fuera de la función main:

Código:
#include <stdio.h>

int x;

int main()
    {
    }
Y nos sirven para usar en cualquier función.

Por otro lado, las variables Locales solo se declaran dentro de la función:

Código:
#include <stdio.h>

int main()
    {
    int x;
    }
Por lo que si hicieramos una segunda función y queremos utilizar la misma variable no podremos, tendremos que hacerla global.

Se pueden declarar más de una variable en una sola línea:

Código:
int a, b, c;
Estas deben estar separadas por comas.

Variables tipo char:

Las variables de tipo char sirven para almacenar caracteres. Los caracteres se almacenan en realidad como números del 0 al 255. Los 128 primeros (0 a 127) son el ASCII estándar. El resto es el ASCII extendido y depende del idioma y del ordenador.



Por ahora en una variable char sólo podemos almacenar un caracter:

Para almacenar un dato en una variable char, este caso "A", que en ASCII es el núm 65:
Código:
char letra;
letra = A;
printf ("La letra es: %c.\n", letra);
El "%c" es para mostrar el valor de la variable como caracter.

Quedaría así:

La letra es: A.
Presione una tecla para continuar . . .
En memoria se vería así:

Código:
Locación    Valor       

000075E    01000001  < Esto equivale a 1 byte, y en binario es el número 65.
Y para integrar int con char, podríamos hacer un printf que nos muestre el valor de la variable "letra" como caracter, "A", y su valor ASCII, "65".

Usaríamos la siguiente instrucción:

Código:
char letra;
letra = A;
printf( "El número ASCII de la letra %c es: %i.\n", letra, letra );
Y quedaría:

El número ASCII de la letra A es: 65.
Presione una tecla para continuar . . .
Bien, ya vamos a entrar en tema de como formar cadenas de texto (palabras) con una variable char.

Por el momento deberán saber que se puede, y solo podremos escribir una palabra tan larga como nosotros la definamos.

Si deseamos escribir la palabra "hola" tendríamos que usar 4 caracteres. Entonces:

Código:
char palabra[4];
palabra = Hola;
El número que ponemos entre [n] sirve para reservar n posiciones de memoria para almacenar datos.

Si usamos [10] para decir hola, las 6 restantes quedarán con valor nulo, es decir, 0.

Por ende, si no sabemos el tamaño exacto de la palabra, debemos reservar bytes de más, de lo contrario no nos entraría el texto.

Las variables tipo char admiten números tambien, pero su valor en memoria no será ese número, sino el valor que le corresponde a al mismo en ASCII.

¿Se entiende?

¡Sigamos!


Rango de valores de tipos de variables

Podemos calcular la cantidad de combinaciones de 1 y 0 de una variable sabiendo la cantidad de bits que ocupa en memoria.

Si ocupa 4 locaciones, como dijimos antes, de 8 bits cada una, 4*8 = 32.

Entonces es posible introducir 2^32 = 4.294.967.295 combinaciones.

Si hablamos de números usamos la mitad de estas para los negativos, y la otra para los positivos.

Por lo que en una variable de tipo int podemos introducir números enteros desde el -2.147.483.647 a 2.147.483.647.

Código:
Tipo       N° de bits    Cant de locaciones
                         de memoria (bytes)
                            
char             8                  1
int              32                 4
float            32                 4
double           64                 8

El modificador unsigned:

Este modificador (que significa sin signo) modifica el rango de valores que puede contener una variable. Sólo admite valores positivos. Si hacemos:

Código:
unsigned char variable;
Esta variable en vez de tener un rango de -128 a 128 (2^8, mitad positivos, y mitad negativos) pasa a tener un rango de 0 a 255.


Variables tipo float y double

En este tipo de variable podemos almacenar números decimales, no sólo enteros como en los anteriores. El rango de posibles valores es de -2.147.483.647 a 2.147.483.647.

Declaración de una variable de tipo float:

Código:
float numero;
Para imprimir valores tipo float usamos %f:

Código:
float num = 4060.80;   /*Pueden declararse así también las variables*/
printf ("El valor de num es : %f\n", num);
Resultado en consola:

El valor de num es: 4060.80
Presione una tecla para continuar . . .
En el caso de las variables double, es lo mismo que float, pero el rango cambia a 2^64 combinaciones.

Y para leerlas debemos utilizar %d.[DOUBLEPOST=1405039893][/DOUBLEPOST]


Operaciones básicas con variables

Las variables pueden operarse, ya que al ser numeros dentro de la memoria pueden sumarse, restarse, dividirse y multiplicarse.

¿Como operamos con variables?

Simple, lo único que hay que tener en cuenta es que depende las variables que usemos, el resultado que obtendremos.

Si dividimos dos números enteros obtendremos como resultado un número entero. Es decir: 8/3 = 2

Si queremos obtener el resultado en decimal (2,6666...) debemos declarar a 8 y a 3 como float.

Vamos al código:

Código:
#include <iostream>
#include <stdio.h>

int main ()
{
float a, b, c;
a = 8;
b = 3;
c = a/b;
printf ("El resultado de a/b es: %f\n", c);
system ("Pause");
return 0;
}
Quedaría así:

El resultado de a/b es: 2.6666666
Presione una tecla para continuar . . .
¿Se va entendiendo la lógica del código?

Muy bien.

Operadores:

Suma: +
Resta: -
Multiplicación: *
División: /

Ahora ¿qué sucede si queremos ingresarle nosotros los datos y que nos opere la suma?

Usaremos la función scanf

Ejemplo:

Código:
#include <iostream>
#include <stdio.h>

int main ()
{
float a, b, c;
printf ("Escriba un número: ");
scanf ("%d", &a)
printf ("\nEscriba otro número: ")
scanf ("%d", &b)
c = a+b;
printf ("\nEl resultado de a+b es: %f\n", c);
system ("Pause");
return 0;
}
Quisá parece complejo, viéndolo por primera vez. Pero si analizamos, nos damos cuenta que scanf sirve para tomar un valor, que en este caso lo ingresamos nosotros; %d como tipo de valor a guardar; y el "&" es para asignarle el valor que nosotros ingresamos a la variable.

Será cuestión de prática el tiempo que llevará darse cuenta lo simple que es esto.

Por el momento esto será todo.[DOUBLEPOST=1405039944][/DOUBLEPOST]


Actividades

Este capítulo lo dedicaremos únicamente a actividades.

Vamos a por ello:

1) ¿Cuantos bytes son 300 kb? (se puede aproximar 1024 a 1000)

2) ¿Que es más grande? ¿4 gb o 5.600 kb?

3) Si tenemos una memoria ram de 256 mb, ¿cuantas locaciones contendría?

4) En un disco de 32 gb ¿cuantos bits podríamos almacenar?

5) Tengo 20 películas que ocupan 900 mb cada una. Quiero pasarlas a mis pendrives de 2 gb cada uno. ¿Cuántos de ellos debería usar? (Ojo con esta...)

6) Tengo un archivo en mi pc que guarda todos los gastos de la semana.
Ejecuto un programa para que a fin de mes me calcule todos los gastos totales.

¿Donde está almacenado el archivo?
¿A donde irán los datos una vez que abro el archivo con el programa?
¿Quién realizará la suma de los datos?
El resultado de la suma, ¿donde estará almacenado?

7) Tenemos un registro de alumnos de una facultad formado por:

Número de legajo:
Edad:
Nombre:
DNI:
Curso:
Promedio:

Donde un ejemplo de un alumno es:

Número de legajo: 1537787
Edad: 18
Nombre: Santiago
DNI: 38.000.000
Curso: k1045
Promedio actual: 9,34
Identificar el tipo de variable de cada campo, usando la notación de código (int, etc...).


8) Realizar los siguientes programas, de manera que en consola se vea exactamente igual que como figura el texto aquí:

Deberán enviarme el código fuente de cada uno. COMPLETO.

I)
Hola mundo.
Presione una tecla para continuar . . .

II)
Hola mundo.
Este año es el 2014.
Presione una tecla para continuar . . .
III) Declarar una variable cuyo valor sea entero y mostrarlo.

IV) Declarar una variable entera y otra decimal y mostrarlas en orden (primero la entera, luego la decimal), de manera que quede con la siguiente estructura:

La entera es:
La decimal es:
Presione una tecla para continuar . . .
V) Realizar un programa que pida un número decimal (con coma), y nos diga que número ingresamos.

VI) Realizar un programa que al ingresarle dos números nos muestre la suma, la resta, la multiplicación y la división decimal, con el siguiente formato:

Ingrese un número:
Ingrese otro número:
La suma es:
La diferencia es:
El producto es:
El cociente es:


¡Éxitos!
 

womlock

明日の世界
Esta muy bueno, esto le viene de 10 a las personas que desean aprender C, te felicito!
 

Franeg95

CARP
Ex-Staff
Está bastante entretenido el manual. Ya lo había leído cuando estaba en el colegio. Sos el usuario de biogamers?
 
Estado
Cerrado para nuevas respuestas.
Arriba