Εισαγωγή στον Προγραμματισμό Υπολογιστών

Τα posts που έγιναν κατά την διάρκεια του Ακαδημαϊκού Έτους 2017-2018 για τα προπτυχιακά μαθήματα.
Locked
User avatar
leecher
Venus Former Team Member
Posts: 139
Joined: Fri Jan 23, 2015 9:47 pm
Academic status: N>4
Gender:

Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by leecher » Mon Oct 02, 2017 1:33 am

Το παρόν thread προορίζεται για το μάθημα "Εισαγωγή στον Προγραμματισμό Υπολογιστών". Εδώ μπορείτε να συζητάτε για ό,τι σχετίζεται με το συγκεκριμένο μάθημα. Υπενθυμίζουμε ότι με βάση τους κανονισμούς λειτουργίας του forum απαγορεύονται τα greeklish, double posts και τα κεφαλαία. Για προηγούμενες συζητήσεις μπορείτε να ανατρέξετε εδώ.

Καλή αρχή! :D
km291
Buffer underflow exception
Buffer underflow exception
Posts: 1
Joined: Tue Oct 03, 2017 11:34 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by km291 » Tue Oct 03, 2017 11:43 pm

Hello,
Εχουν ξεκινησει τα εργαστηρια?
calmen
bit level
bit level
Posts: 16
Joined: Fri Jun 16, 2017 11:31 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by calmen » Tue Oct 10, 2017 2:45 pm

καλησπερα μια βοηθεια παρακαλω;)
η ασκηση θελει να βρεις τους 100 πρωτους αριθμους και απο αυτους θελει να βρει τον μεγαλυετερο.
εγω εχω κανει ενα προγραμμα με βαση ιντερνετ βιβλιο κλπ αλλα δεν ειναι αυτο που θελει..με αυτο που εχω γραψει εγω οταν βρει τον πρωτο αριθμο σταματαει,χωρις να μου τον εμφανισει.
οποιος μπορει να γραψει τον σωστο κωδικα ή και να μου πει πως να τον γραψω σωστα.ευχαριστω!!


import acm.program.*;
import acm.graphics.*;
public class finalexa5 extends ConsoleProgram {
public void run () {

int max = 100;
for ( int x = 100 ; x> 0 & x <= max ; x--) {
boolean protos = true ;
for ( int y = 2 ; y < x ; y++)
if ( x % y == 0 )
protos = false ;



if (protos)
break ;
println(x) ;

}
}
}
User avatar
Iptamenos
byte level
byte level
Posts: 92
Joined: Mon Sep 19, 2011 9:05 pm
Academic status: MSc
Gender:
Location: Ζωγράφου
Contact:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Iptamenos » Tue Oct 10, 2017 4:43 pm

calmen wrote:καλησπερα μια βοηθεια παρακαλω;)
η ασκηση θελει να βρεις τους 100 πρωτους αριθμους και απο αυτους θελει να βρει τον μεγαλυετερο.
εγω εχω κανει ενα προγραμμα με βαση ιντερνετ βιβλιο κλπ αλλα δεν ειναι αυτο που θελει..με αυτο που εχω γραψει εγω οταν βρει τον πρωτο αριθμο σταματαει,χωρις να μου τον εμφανισει.
οποιος μπορει να γραψει τον σωστο κωδικα ή και να μου πει πως να τον γραψω σωστα.ευχαριστω!!
Έκανα την εξής διόρθωση σημειωμένη με έντονο φόντο:

import acm.program.*;
import acm.graphics.*;
public class finalexa5 extends ConsoleProgram {
public void run () {

int max = 100;
for ( int x = 100 ; x> 0 & x <= max ; x--) {
boolean protos = true ;
for ( int y = 2 ; y < x ; y++) {
if ( x % y == 0 ) {
protos = false ;
break;
}
}
if (protos) {
println(x) ;
break ;

}
}


Τον έλεγχο για τον αν ο αριθμός είναι πρώτος πρέπει να τον κάνεις έξω από την εμφωλευμένη δομή επανάληψης, γιατί θέλεις να ελέγξεις ότι το x δεν διαιρείται με κάποιον από όλους τους άλλους αριθμούς και όχι απλά ότι το χ δεν διαιρείται με κάποιον αριθμό.

Αν θέλεις μπορείς να κάνεις την εξής βελτιστοποίηση για επιτάχυνση. Έλεγχος διαιρετότητας έως το μισό του x:
for ( int y = 2 ; y < x/2 ; y++)

Ή ακόμα καλύτερα όπως έχει αποδειχθεί, έλεγχος διαιρετότητας έως τη ρίζα του x:
for ( int y = 2 ; y < Math.sqrt(x) ; y++)
"Actin' funny, but I don't know why. Excuse me while I kiss the sky..." - Jimi Hendrix
calmen
bit level
bit level
Posts: 16
Joined: Fri Jun 16, 2017 11:31 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by calmen » Tue Oct 10, 2017 5:47 pm

Σε ευχαριστώ πάρα πάρα πολύ!!! γιατί έχω σταματήσει εκεί εδώ και 2 μέρες!!
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Georgilakis Antonios » Wed Oct 11, 2017 7:40 pm

kwnstantinos.nikoloutsos wrote:Μια ερώτηση και απο εμένα:
Η java εχει build-in libraries η Math ειναι μια απο αυτες?? Γνωριζω μονο Python και η java μου φαίνεται πολυ πιο ασχημη στο συντακτικο της :(
Προφανώς και έχει, δες το online API reference. Για το Math είναι στο java.lang.Math.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
nickgian
bit level
bit level
Posts: 7
Joined: Mon Sep 04, 2017 1:37 am
Academic status: 1st year
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by nickgian » Thu Oct 12, 2017 1:10 am

Λοιπόν ξέρω ότι είναι πολύ νωρίς ακόμα αλλά όλο το εξάμηνο θα κάνουμε compile μέσω του command line; Γιατί θέλω να ασχοληθώ μόνος μου και δεν ξέρω αν έχει νόημα να μάθω αυτόν τον τρόπο ή αν θα ξεκινήσω κατευθείαν με ένα IDE. Επίσης ψάχνοντας στο stackoverflow είδα που ένας πρότεινε αν είσαι αρχάριος να δουλεύεις με τη μέθοδο του cmd και με έβαλε σε σκέψεις. Ποια είναι η γνώμη σας;
User avatar
leecher
Venus Former Team Member
Posts: 139
Joined: Fri Jan 23, 2015 9:47 pm
Academic status: N>4
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by leecher » Thu Oct 12, 2017 2:03 am

Στην εισαγωγή στον προγραμματισμό, νομίζω μόνο μέσω command line θα κάνετε compile, αλλά μπορείς να αυτοματοποιήσεις κάπως την διαδικασία βάζοντας τις εντολές για το compile μέσα σε ένα .bat αρχείο (που έφτιαξες με κάποιον απλό επεξεργαστή κειμένου).

πχ (test.bat):

Code: Select all

javac Test.java && java Test
pause
Κάθε φορά που θα εκτελείς το .bat αρχείο που δημιούργησες θα γίνεται compile το αρχείο Test.java και στη συνέχεια θα εκτελείται. Αλλιώς μπορείς να χρησιμοποιήσεις κάποιο IDE, που η διαδικασία γίνεται συνήθως με το πάτημα ενός κουμπιού. Για εξάσκηση αν είσαι αρχάριος θα σου έλεγα να μην χρησιμοποιήσεις IDE σε αυτό το μάθημα.
User avatar
pgetsos
Venus Former Team Member
Posts: 1192
Joined: Sun Oct 13, 2013 1:29 am
Academic status: MSc
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by pgetsos » Thu Oct 12, 2017 2:47 am

Καλο ειναι να μαθεις και τον βασικο τροπο, γιατι μελλοντικα μπορει να σου χρειαστει

Απο το επομενο εξαμηνο κατεβασε το JetBrains IDEA Ultimate με χρηση του πανεπιστημιακου σου email
Όταν μια μαύρη γάτα περάσει από μπροστά σου, σημαίνει ότι το ζώο πάει κάπου.

Μην αφήνεις τα μικρά μυαλά να σε πείσουν ότι τα όνειρα σου είναι πολύ μεγάλα.
calmen
bit level
bit level
Posts: 16
Joined: Fri Jun 16, 2017 11:31 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by calmen » Thu Oct 12, 2017 3:39 pm

καλησπερα,
στο προγραμμα που βαζει τυχαιους αριθμους και πρεπει να βρεις το αθροισμα ,μ.ο , για θετικους και αρνητικους ξεχωριστα,
σου λεει να βρεις και το μαξ,μιν απο αυτους..
στο πρωτο μερος το καταφερα στο δευτερο ειχα θεμα.
στο ιντερνετ εαν καταλαβα καλα(?) τους βρισκουν με πακετο
φανταζομαι οτι εμεις σε αυτο το μαθημα πρεπει να γραψουμε εντολες..
μια βοηθεια πως θα βαλω και το μαξ και μιν σε αυτο που εγραψα??
ευχαριστω.
συγνωμη για το μεγαλο ποστ..
εαν καποιος θελει να με βοηθησει με υλικο για να προλαβω να εχω τελειωσει το μαθημα μεχρι 1/12/2017 θα τον ευχαριστουσα τρελα!
(τοτε θα δωσουμε οσοι θελουν να μπουν στο τμημα με κατατακτηριες)

Code: Select all

import acm.program .*;
import acm.graphics .*;
public class frouros extends ConsoleProgram {
 public void run () {
	 int totala = 0 ;
	 int totalt = 0 ;
	 int countt = 0 ;
	 int counta = 0 ;
	 int x = 0 ;
	 
	 boolean thetikos = true ;
		 while (thetikos = true )  {
		 int value = readInt ("dwse aritmo : ") ;
		   
		  if (value < x )  {
		  
		  counta++ ;
		  totala += value ;
		  println( "to athroisma  ton arnitikon einai " + totala) ;
		   
		   
		   thetikos = false ;
		  }
		  if (value == 0 ) break ;
		  
		  if (thetikos) {
		  countt++;
		  totalt += value ;
		  println( " to athroisma ton thetikon einai " + totalt) ;
		    
		  }
		 }
		println( " to athroisma ton thetikon einai " + totalt) ;  
	  println( "to athroisma  ton arnitikon einai " + totala) ;
	  double averagea = (double) totala / counta ;
	  println(" to average ton arnitikon einai " +averagea) ;
	  double averaget = (double) totalt / countt ;
	  println( "to average ton thetikon einai " + averaget) ;
}
}
User avatar
leecher
Venus Former Team Member
Posts: 139
Joined: Fri Jan 23, 2015 9:47 pm
Academic status: N>4
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by leecher » Thu Oct 12, 2017 6:14 pm

Μπορείς να θέσεις 2 νέες μεταβλητές, μία για το min και μία για το max, και κάθε φορά να συγκρίνεις τον αριθμό αν είναι μικρότερος από το min ή μεγαλύτερος από το max. Αν ισχύει μία από τις 2 περιπτώσεις τότε αντικαθιστάς τη μεταβλητή min ή max με τον νέο αριθμό.

Παράδειγμα:

Code: Select all

import java.util.Random;

public class Test {

	public static void main(String[] args) {

		int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;

		for (int i = 0 ; i < 10 ; i++) {
			
			int randomNumber = (new Random()).nextInt(100);
			System.out.println(randomNumber);
			
			if (randomNumber < min) {
				min = randomNumber;
			}
			
			if (randomNumber > max) {
				max = randomNumber;
			}
			
		}
		
		System.out.println("min: " + min);
		System.out.println("max: " + max);
		
	}

}
Αρχικά κάνουμε αυτό int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE; ώστε να δώσουμε στις μεταβλητές τη μεγαλύτερη και μικρότερη τιμή που μπορούν να πάρουν. Ύστερα το πρόγραμμα παράγει 10 τυχαίους αριθμούς από τους οποίους βρίσκει τον μεγαλύτερο και τον μικρότερο.
calmen
bit level
bit level
Posts: 16
Joined: Fri Jun 16, 2017 11:31 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by calmen » Thu Oct 12, 2017 6:36 pm

Ωραία σε ευχαριστώ πολύ για την βοήθεια.θα το μελετήσω .
calmen
bit level
bit level
Posts: 16
Joined: Fri Jun 16, 2017 11:31 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by calmen » Tue Oct 17, 2017 12:23 pm

καλημερα,
μια ερωτηση προς τα παιδια που εχουν δωσει το μαθημα ή ξερουν,
σε ασκησεις-εξετασεις αν μας ζητηθει να βρουμε μαθηματικες πραξεις πχ δυναμη του 2,μιν,μαξ..
μπορω να τα παρω απο Μαth ( πχ απο την Math.pow) ή θα πρεπει να τα γραφω βημα βημα?
ευχαριστω
teotsi21
bit level
bit level
Posts: 14
Joined: Mon Dec 05, 2016 2:07 am
Academic status: 2nd year
Gender:
Contact:

Re: RE: Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by teotsi21 » Tue Oct 17, 2017 1:21 pm

calmen wrote:καλημερα,
μια ερωτηση προς τα παιδια που εχουν δωσει το μαθημα ή ξερουν,
σε ασκησεις-εξετασεις αν μας ζητηθει να βρουμε μαθηματικες πραξεις πχ δυναμη του 2,μιν,μαξ..
μπορω να τα παρω απο Μαth ( πχ απο την Math.pow) ή θα πρεπει να τα γραφω βημα βημα?
ευχαριστω
Συνήθως ξεκαθαριζεται στην εκφώνηση. Συνήθως δεν έχουν πρόβλημα με τις βασικές βιβλιοθήκες της Java πάντως.

Sent from my ONEPLUS A3010 using Tapatalk
Dreams are made winding through my head.
calmen
bit level
bit level
Posts: 16
Joined: Fri Jun 16, 2017 11:31 pm

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by calmen » Tue Oct 17, 2017 1:49 pm

οκ ευχαριστω
stratisper99
Buffer underflow exception
Buffer underflow exception
Posts: 1
Joined: Sat Oct 28, 2017 5:14 pm
Academic status: 1st year
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by stratisper99 » Sun Oct 29, 2017 3:24 pm

Ρε παίδες μήπως γνωρίζει κανείς γιατί ενώ έχω κατεβάσει την java όταν κάνω compile στο cmd μου εμφανίζει errors ενώ ο κώδικας είναι σωστός???Μήπως παίζει κάτι με την βιβλιοθήκη program?
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Georgilakis Antonios » Sun Oct 29, 2017 8:59 pm

stratisper99 wrote:Ρε παίδες μήπως γνωρίζει κανείς γιατί ενώ έχω κατεβάσει την java όταν κάνω compile στο cmd μου εμφανίζει errors ενώ ο κώδικας είναι σωστός???Μήπως παίζει κάτι με την βιβλιοθήκη program?
Το να υπάρχει bug στην ACM βιβλιοθήκη είναι τόσο σπάνιο που πρακτικά αποκλείεται. Αν πράγματι ο κώδικάς σου είναι σωστός, τότε τι είδους errors εμφανίζονται στην γραμμή εντολών? Μήπως να έκανες ακόμα ένα revision?
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
nickgian
bit level
bit level
Posts: 7
Joined: Mon Sep 04, 2017 1:37 am
Academic status: 1st year
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by nickgian » Tue Oct 31, 2017 6:36 pm

Ποιο σύγγραμα προτείνετε ανάμεσα στου Rogers (Μπλε εξώφυλλο) και του Roberts (αυτό με το λιοντάρι);
User avatar
Eldebryn
Venus Former Team Member
Posts: 1116
Joined: Sat Sep 18, 2010 8:43 pm
Academic status: Alumnus/a
Gender:
Location: Somewhere in the Forgotten Realms...

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Eldebryn » Tue Oct 31, 2017 10:06 pm

nickgian wrote:Ποιο σύγγραμα προτείνετε ανάμεσα στου Rogers (Μπλε εξώφυλλο) και του Roberts (αυτό με το λιοντάρι);
Roberts το βρήκα πολύ πιο ευανάγνωστο και εξίσου χρήσιμο με το άλλο. Plus, LOTR references ma dude :metal2:
Image<-- My profile playlists
Everett Lake
bit level
bit level
Posts: 16
Joined: Wed Sep 17, 2014 1:18 pm
Academic status: N>4

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Everett Lake » Fri Nov 10, 2017 5:04 pm

Παιδιά καλησπέρα,

για την πρώτη εργασία της Java για τις ασκήσεις 1 και 2 χρειαζόμαστε γραφικά. Πέρα από την άσκηση του lab 3 και την άσκηση 4, δε βρήκα κάτι άλλο πάνω σε αυτό. Επειδή γενικά δεν προλαβαίνω να παρακολουθώ τα μαθήματα, τι οδηγίες έχουν δώσει γι αυτές τις ασκήσεις; Απλά να δούμε τι παίζει στο βιβλίο του Roberts? ή υπάρχουν τίποτα σημειώσεις που δεν έχω δει;
User avatar
Julio
bit level
bit level
Posts: 7
Joined: Sun Aug 27, 2017 11:26 am
Academic status: 1st year
Gender:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Julio » Mon Nov 13, 2017 12:43 am

Μπορώ να χρησιμοποιήσω στη δήλωση μιας σταθεράς πράξεις με άλλες σταθερές;
π.χ: private static final double POS=(HWIDTH-DWIDTH)/2; όπου HWIDTH και DWIDTH σταθερές
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Post by Georgilakis Antonios » Mon Nov 13, 2017 11:37 am

Julio wrote:Μπορώ να χρησιμοποιήσω στη δήλωση μιας σταθεράς πράξεις με άλλες σταθερές;
π.χ: private static final double POS=(HWIDTH-DWIDTH)/2; όπου HWIDTH και DWIDTH σταθερές
Ναι.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
Locked

Return to “Ακαδημαϊκό Έτος 2017-2018”