Sunteți pe pagina 1din 7

Facultad Politécnica - Universidad Nacional del Este

Ingeniería Eléctrica

Computación Científica I

Alumno: Rolando David Britez Herrera

Profesor: M. Sc. Ing. Carlos Domingo Almeida Delgado

Trabajo Práctico N° 2

1. Responda a las siguientes preguntas:

a- ¿Que son los arreglos?

La estructura de datos que sirve para almacenar estas grandes secuencias de números
(generalmente de tipo float) es el arreglo.

Los arreglos tienen algunas similitudes con las listas:

 los elementos tienen un orden y se pueden acceder mediante su posición,

 los elementos se pueden recorrer usando un ciclo for.

Sin embargo, también tienen algunas restricciones:

 todos los elementos del arreglo deben tener el mismo tipo,

 en general, el tamaño del arreglo es fijo (no van creciendo dinámicamente como las
listas),

 se ocupan principalmente para almacenar datos numéricos.

A la vez, los arreglos tienen muchas ventajas por sobre las listas, que iremos descubriendo a
medida que avancemos en la materia.

Los arreglos son los equivalentes en programación de las matrices y vectores de las
matemáticas. Precisamente, una gran motivación para usar arreglos es que hay mucha teoría
detrás de ellos que puede ser usada en el diseño de algoritmos para resolver problemas
verdaderamente interesantes.

b- ¿Cuál es la diferencia entre los operadores de igualdad (==) y de asignación (=)?


¿Para qué se usan?

Igualdad:

A diferencia de otros lenguajes de programación, JScript no utiliza el signo igual como


operador de comparación, sino sólo como operador de asignación. Para comparar dos valores,
puede utilizar el operador de igualdad (==) o el operador de igualdad estricta (===).
El operador de igualdad compara las cadenas primitivas, los números y los valores booleanos
por valor. Si dos variables tienen el mismo valor, después de la conversión de tipos (si es
necesaria), el operador de igualdad devuelve true. Los objetos (incluidos los objetos Array,
Function, String, Number, Boolean, Error,Date y RegExp) se comparan por referencia. Aunque
dos variables de objeto tengan el mismo valor, la comparación devuelve true sólo si hacen
referencia al mismo objeto.

El operador de igualdad estricta compara el valor y el tipo de dos expresiones; devuelve true
sólo si las dos expresiones se comparan como iguales con el operador de igualdad, y el tipo de
datos es el mismo para los dos operando.

Operadores de asignación:

Un operador de asignación asigna un valor a el operador de la izquierda en función a el valor


del operando de la derecha. El operador básico de asignación es el igual (=), que asigna el valor
de la derecha a el operador de la izquierda. Por ejemplo, x = y, está asignando el valor y a x.

Operador abreviado Significado

x += y x=x+y

x -= y x=x-y

x *= y x=x*y

x /= y x=x/y

x %= y x=x%y

x <<= y x = x << y

x >>= y x = x >> y

x >>>= y x = x >>> y

x &= y x=x&y

x ^= y x=x^y

x |= y x=x|y

c- ¿En qué consiste la técnica de divide y vencerás?

La técnica de diseño de algoritmos llamada "divide y vencerás" (divide and conquer) consiste
en descomponer el problema original en varios sub-problemas más sencillos, para luego
resolver éstos mediante un cálculo sencillo. Por último, se combinan los resultados de cada
sub-problema para obtener la solución del problema original. El pseudocódigo sería:

funcion divide_y_venceras_1(problema)
{

descomponer el problema en n subproblemas más pequeños;

para i=1 hasta n hacer

resolver el subproblema k;

combinar las n soluciones;

d- Cómo se invoca a una función?

Invocación de funciones (programación). Una invocación ó llamada a una función implica


pasarle el control de la ejecución del programa, así como los argumentos ó parámetros que
requiere para realizar su tarea, se realiza colocando el nombre de la función y los argumentos
actuales en el mismo orden que los parámetros formales correspondientes. La sintaxis del
lenguaje permite también la invocación de funciones a través de punteros a funciones e
incluso de referencias, aunque esto último sea menos frecuente. Cuando las funciones son
miembros de clases la invocación sigue una sintaxis especial. En estos casos incluso existen
operadores especiales para invocarlas a través de sus punteros.

e- ¿Cómo se le llama a una variable que se conoce sólo dentro de la función en la que
está declarada?

Como vimos anteriormente C tiene como bloque básico la función main() , también hemos
visto la sentencia printf() que es otra función, y de igual forma hay muchas más funciones
predefinidas, pero nosotros mismos también podemos definir nuestras propias funciones. De
hecho, es fundamental hacerlo.

Podemos definir una función cualquiera de la misma manera en que definimos la función
main(). Basta con poner su tipo, su nombre, sus argumentos entre paréntesis y luego, entre
llaves, su código:

f- ¿Para qué se usa la instrucción return?

La sentencia return puede utilizarse dentro de una función para terminar su ejecución.

En el ejemplo anterior, la función holamundo fue declarada con valor de retorno de tipo void
(es decir, valor de retorno nulo). En ese caso, la sentencia return no lleva ningún parámetro
adicional, ya que la función no debe devolver ningún valor a la función que la llama.

En cambio, la función main tiene un valor de retorno de tipo int, por lo que return debe ir
seguido de un valor entero (0 en el ejemplo). El valor 0 se utiliza para indicar que el programa
ha llegado a un punto en el que todo se ha desarrollado correctamente y se utiliza cualquier
otro valor para indicar que ha habido algún tipo de error.

La instrucción return no es una función, se trata de una sentencia que lo que hace es retornar
como valor de la función el valor que se le proporciona como argumento.
2. Encuentre el error en cada uno de los siguientes segmentos de programa y corrija el error

a) #define SIZE 100;

#define SIZE

b) SIZE = 10

SIZE = 10;

c) Suponga int b[10] = {0}, i;

for (i = 0; i <= 10; i++ )

b[ i ] = 1;

Suponga int b[10] = {0}, i;

for (i = 0; i<= 10; i++ )

b[ i ] = 1;

d) #include <stdio.h>;

#include <stdio.h>

e) Suponga que int a[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } };

a[ 1, 1 ] = 5;

Suponga que int a[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } };

a[ 1, 1 ] = 1;

3. Realice un programa que calcule la suma de los números de 1 a 1000.

/* if(x%2==0)
par= par + x;
printf ("%d", x);
else
impar = impar + x
printf ("%d", x);
para ver si es par o impar*/
/*printf ("ingrese el maximo valor a calcular");
scanf ("%d", &n);*/

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <windows.h>

main()
{
int suma=0, i;
for (i=1 ; i<=1000 ; i++)
suma = suma + i;
printf ("la suma de los numeros a 1000/n", i);
}

4. Se desea calcular en forma independiente, la suma de los números pares e impares


comprendidos entre 1 y 200.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int x,n;
int par=0;
int impar=0;
printf("Ingrese el valor a deducir la sumatoria de pares e
impares: ");
scanf("%d",&n);
for(x=0; x<=n; x++)
if(x%2==0) {
par=par+x;
printf("%d \n",x);}
else {
impar=impar+x;
printf("%d ",x);}
printf("\nNumeros pares %d\n",par);
printf("Numeros impares %d",impar);

getch();
}

5. Sumar los números pares del 2 al 100 e imprimir su valor.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int x;
int par=0;
for(x=2; x<100; ++(x=x+1)){
par= par+x;
printf("%d ",x);
}
printf("\nLa suma de los numeros del 1 al 100 es:
%d\n",par);

getch();
}
6. Calcular la nota media de los alumnos de una clase considerando n-número de alumnos y
c-número de notas de cada alumno.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <windows.h>
main()
{
float nota,suma, media,promedio;
int i, x, alumn, notas;
printf("\n\nIngrese numero de alumnos: ");
scanf("%d",&alumn);
printf("\n\nIngrese el numero de notas: ");
scanf("%d",&notas);
for(i=1; i<=alumn; i++){
system("cls");
printf("\n\nEl alumno %d: ",i);
for(x=1; x<=notas; x++){
printf("\n\nIngrese la nota %d: ",x);
scanf("%f",&nota);
suma= suma+nota;
promedio=suma/notas;}}
printf("\nCantidad de alumnos: %d",alumn);
printf("\nSuma total de las notas %0.1f",suma);
media=promedio/alumn;
printf("\nLa nota media es: %0.1f",media);
getch();
}

7. Calcular el valor máximo de una serie de 100 números.

#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<time.h>
#include<math.h>
#define n 100
main()
{
int Nro[n];
int j,i;

srand(time(NULL)); // iniciacion del random


printf("\nlos valores del arreglo \n\n");
for(i=0;i<n;i++){
Nro[i]= rand()%100+1; // carga del vector
de posicion en forma randomica
printf("%d ",Nro[i]);
}
int aux;

/*metodo de ordenamiento de burbuja*/


for (i=0 ; i<n-1 ; i++)
for (j=i+1 ; j<n ; j++)
if (Nro[i] > Nro [j])
{ aux= Nro [i];
Nro[i]=Nro[j];
Nro[j]=aux;
}

printf("EL mayor de todos %d",Nro[n-1]);

getch ();
}

S-ar putea să vă placă și