Go Practical Assignments (1)
Go Practical Assignments (1)
package main
import "fmt"
func main() {
fmt.Print("Enter Student Name : ")
var name string
fmt.Scanln(&name)
package main
import "fmt"
func main(){
fmt.Print("Enter number : ")
var n int
fmt.Scanln(&n)
/* Conditional Statement if .... else ........ */
if(n%2==0){
fmt.Println(n,"is Even number")
}else{
fmt.Println(n,"is Odd number")
}
}
func main(){
a := 23
b := 45
func main() {
// variable
i := 32
fmt.Println(&i)
SETB
func main(){
var n int
fmt.Print("Enter any Integer Number : ")
fmt.Scan(&n)
i:=1
/* For loop as a Go's While */
for {
if(i>10){
break;
}
fmt.Println(n," X ",i," = ",n*i)
i++
}
}
func main(){
var rows int
var temp int = 1
fmt.Print("Enter number of rows : ")
fmt.Scan(&rows)
for i := 0; i < rows; i++ {
for j := 1; j <= rows-i ; j++ {
fmt.Print(" ")
}
for k := 0; k <= i; k++ {
if (k==0 || i==0) {
temp = 1
}else{
temp = temp*(i-k+1)/k
}
fmt.Printf(" %d",temp)
}
fmt.Println("")
}
}
3. WAP in go language to print Fibonacci series of n terms
package main
import "fmt"
func main(){
var n int
t1:=0
t2:=1
nextTerm:=0
fmt.Print("Enter the number of terms : ")
fmt.Scan(&n)
fmt.Print("Fibonacci Series :")
for i:=1;i<=n;i++ {
if(i==1){
fmt.Print(" ",t1)
continue
}
if(i==2){
fmt.Print(" ",t2)
continue
}
nextTerm = t1 + t2
t1=t2
t2=nextTerm
fmt.Print(" ",nextTerm)
}
}
4. WAP in go language to illustrate pointer to pointer concept
package main
import "fmt"
func main() {
var a int = 10
var b *int
var c **int
b = &a
c = &b
fmt.Println("valuee of a = ", a)
fmt.Println("valuee of b = ", *b)
fmt.Println("valuee of c = ", **c)
}
5. WAP in go language to explain new function
package main
import "fmt"
Ar := length* width
return Ar
}
func main() {
var x,y int
fmt.Print("Enter the length : ")
fmt.Scan(&x)
SETC
func main() {
var concatenate string
var a, b string
fmt.Print("Enter the First String : ")
fmt.Scan(&a)
fmt.Print("Enter the second String : ")
fmt.Scan(&b)
// var b string =
var c *string
var d *string
c = &a
d = &b
concatenate = *c + *d
fmt.Println("Concatenated String : ", concatenate)
}
2. WAP in go language to accept two strings and compare them
package main
import "fmt"
func main() {
fmt.Print("Enter First String: ")
//Print function is used to display output in same line
var first string
fmt.Scanln(&first) // Take input from user
fmt.Print("Enter Second String: ")
var second string
fmt.Scanln(&second)
if first == second {
fmt.Println("Strings are equal !")
}else{
fmt.Println("Strings are not equal !")
}
}
3. WAP in go language to accept user choice and print answer of
using arithmetical operators
package main
import "fmt"
func main() {
var x, y int
fmt.Print(" Enter The Two Number : ")
fmt.Scan(&x, &y)
var choice string
fmt.Print("which operation you should perform : ")
fmt.Scan(&choice)
switch choice {
case "+":
fmt.Println("Addition of two number", x+y)
case "-":
fmt.Println("Subtraction of two number", x-y)
case "*":
fmt.Println("Multiplition of two number", x*y)
case "/":
fmt.Println("Divition of two number", x/y)
case "%":
fmt.Println("Modulation of two number", x%y)
default:
fmt.Println(" Enter the valid oprator ")
}
}
func main() {
var n int
fmt.Println("Enter a number = ")
fmt.Scanln(&n)
import ("fmt"
"strings" )
func main() {
if strings.Contains(string1, substring) {
} else {
}
Assignment 2
SETA
import "fmt"
sum = a + b
return
func main() {
var a, b int
fmt.Scan(&a)
fmt.Scan(&b)
sum = add(a,b)
}
2. WAP in go language to print recursive sum of digits of given
number.
package main
import (
"fmt"
)
func main() {
var palNum, remainder int
SETB
func main() {
var a,b int
fmt.Print("Enter First Number : ")
fmt.Scanln(&a)
func main() {
fmt.Println(split(18))
}
package main
import "fmt"
func main() {
i := 1
}
SETC
func main() {
var a, b int
fmt.Print("Enter First Number : ")
fmt.Scanln(&a)
func main() {
f, _ := os.Create("hello.txt")
defer f.Close()
fmt.Fprintln(f,"hello world")
}
func main() {
package main
import "fmt"
func main() {
var s, i int
fmt.Scan(&s)
lgsmArr := make([]int, s)
fmt.Scan(&lgsmArr[i])
largest := lgsmArr[0]
smallest := lgsmArr[0]
for i = 0; i < s; i++ {
largest = lgsmArr[i]
smallest = lgsmArr[i]
package main
import "fmt"
}
3. WAP in go language to Initialize a Slice using Multi-
Line Syntax and display
package main
import "fmt"
func main(){
a := [4] int {
9,
65,
82,
0,
}
fmt.Println(a)
}
SETB
package main
import "fmt"
type Student struct {
srno int
m1, m2, m3 int
sname string
}
func main() {
var s1 Student
var total, avg float64
avg = float64(total / 3)
SETC
import "fmt"
func main() {
var m, n, p, q, total int
var a [5][5]int
var b [5][5]int
var c [5][5]int
if n != p {
fmt.Println("Error : The matrix cannot be
multiplied")
}else{
fmt.Println("Enter The First Matrix ")
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
fmt.Println("Enter Element :")
fmt.Scan(&a[i][j])
}
}
}
}
2. WAP in go language to accept n records of employee
information (eno,ename,salary) and display record of
employees having maximum salary.
package main
import "fmt"
type employee struct{
eno int
esal float64
ename string
}
func main(){
var e1[100] employee
var n,k int
var max float64
fmt.Println("Enter No Of Employess you Want : ")
fmt.Scan(&n)
for i := 0; i < n; i++ {
func main(){
str :=[]string{
"Mango",
"Apple",
"Banana",
}
fmt.Println(str)
a := make([]string, len(str))
s1 :=append(str,"Pinepple")
fmt.Println(s1)
fmt.Println(copy(a, str))
fmt.Printf("%v",a)
}
Assignment 4
SETA
//Interface declaration
type shape interface {
area() float64
perimeter() float64
}
//Struct declaration for rectangle
type rectangle struct{
length, height float64
}
func main() {
r := rectangle{length: 10.0, height: 5.0}
c := circle{radius: 5.0}
func main() {
value1 := data(23)
value2 := data(20)
res := value1.multipy(value2)
fmt.Println("Final Result : " ,res)
}
3. Write a program in go language to create structure author.
Write a method show() whose receiver is struct author.
package main
import "fmt"
func main(){
res := author{
name : "Tejas",
branch : "BCA",
particles : 03,
salary: 734000,
}
res.show()
}
SETB
func main() {
res := student{
name : "Ashish",
roll: 1,
}
fmt.Println("Roll No : ", res.roll)
fmt.Println("Student Name : ",res.name)
p := &res
p.show(2,"Tejas")
fmt.Println("Roll No : ", res.roll)
fmt.Println("Student Name : ",res.name)
}
2. Write a program in go language to demonstrate working
type switch in interface.
package main
import ("fmt")
func main() {
var value interface{} = "2"
switch t := value.(type){
case int64:
fmt.Println("Type is an integer:", t)
case float64:
fmt.Println("Type is a float:", t)
case string:
fmt.Println("Type is a string:", t)
case nil:
fmt.Println("Type is nil.")
case bool:
fmt.Println("Type is a bool:", t)
default:
fmt.Println("Type is unknown!")
SETC
v, ok := myInt.(float64)
if ok {
fmt.Println(v)
}else{
fmt.Println("Failed Without Panicking !")
}
}
2. Write a program in go language to demonstrate working
embedded interfaces.
package main
import "fmt"
// Interface 1
details()
// Interface 2
articles()
// Interface 3
// interface 1 and 2
AuthorDetails
AuthorArticles
}
// Structure
a_name string
branch string
college string
year int
salary int
particles int
tarticles int
// Implementing method of
// the interface 1
a.branch, a.year)
// Main value
func main() {
// Assigning values
// to the structure
values := author{
a_name: "Shirwaikar",
college: "XYZ",
year: 1990,
salary: 80000,
particles: 209,
tarticles: 309,
f.details()
f.articles()
}
Assignment 5
SETA
func numbers() {
for i := 1; i <= 5; i++ {
time.Sleep(250 * time.Millisecond)
fmt.Printf("%d ", i)
}
}
func alphabets() {
for i := '0'; i <= '10'; i++ {
time.Sleep(400 * time.Millisecond)
fmt.Printf("%c ", i)
}
}
func main() {
go numbers()
go alphabets()
time.Sleep(3000 * time.Millisecond)
fmt.Println("main terminated")
}
3. Write a go program that creates a slice of integers, checks
numbers from slice are even or odd and further sent to
respective go routines through channel and display values
received by go routines.
package main
import ("fmt")
func main() {
var intSlice = []int{91, 42, 23, 14, 15, 76, 87, 28, 19, 95}
go odd(chOdd)
go even(chEven)
if value%2 != 0 {
} else {
for v := range ch {
fmt.Println("ODD :", v)
for v := range ch {
fmt.Println("EVEN:", v)
}
SETB
func main() {
// create a buffered channel
// with a capacity of 2.
ch := make(chan string, 2)
ch <- "geeksforgeeks"
ch <- "geeksforgeeks world"
fmt.Println(<-ch)
fmt.Println(<-ch)
fmt.Println("Capacity of Buffered Channel : ",cap(ch))
fmt.Println("Capacity of Buffered Channel : ",len(ch))
}
import (
"fmt"
)
func fibonacci(ch chan int, quit chan bool) {
x, y := 0, 1
for {
select {
x, y = y, x+y
case <-quit:
fmt.Println("quit")
return
func main() {
ch := make(chan int)
n := 10
go func(n int) {
fibonacci(ch, quit)
}}
import (
"fmt"
"sync"
func main() {
wg.Add(2)
for {
if i, ok := <-ch; ok {
fmt.Println(i)
} else {
break
}
}
wg.Done()
}(ch)
var i int
i = 17
ch <- i
ch <- i + 18
ch <- 13
ch <- 19
close(ch)
wg.Done()
}(ch)
wg.Wait()