Vivasoft-logo

[ā§Š.ā§Ē] āĻĒā§āĻ°ā§āϝāĻžāĻ•āϟāĻŋāϏ āĻĒā§āϰāĻŦā§āϞ⧇āĻŽāϏ (Practice Problems)

  1. Post āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ Struct āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻžāϰ ID, Category, Location, Time āύāĻžāĻŽāĻ• āĻĢāĻŋāĻ˛ā§āĻĄ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āĻāĻ–āύ Location āĻāϰ āĻŽāĻ§ā§āϝ⧇ āφāĻŦāĻžāϰ Latitude, Longitude āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ Post āĻāϰ āĻĻ⧁āϟāĻŋ āχāĻ¨ā§āϏāĻŸā§āϝāĻžāĻ¨ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āĨ¤ āĻļāĻ°ā§āϤ āĻšāĻšā§āϛ⧇, āϤāĻžāĻĻ⧇āϰ ID, Category, Time āφāϞāĻžāĻĻāĻž āĻ•āĻŋāĻ¨ā§āϤ⧁ Location āĻāĻ•āχ āĻĨāĻžāĻ•āĻŦ⧇ āĨ¤
  2. āϧāϰ⧁āύ Post āĻāϰ āĻĻ⧁āϟāĻŋ āĻ•ā§āϝāĻžāϟāĻžāĻ—āϰāĻŋ āĻ°ā§Ÿā§‡āϛ⧇āĨ¤ āϝ⧇āĻŽāύ, Photo āĻāĻŦāĻ‚ Video āĨ¤Â  āĻĻ⧁āχ āĻ•ā§āϝāĻžāϟāĻžāĻ—āϰāĻŋāϰ āϜāĻ¨ā§āϝāχ āφāĻŽāĻžāĻĻ⧇āϰ Thumbnail āĻŦāĻžāύāĻžāϤ⧇ āĻšāĻŦ⧇ āĨ¤ āĻĢāĻžāĻ‚āĻļāύāϟāĻž āĻĻ⧇āĻ–āϤ⧇ āĻāĻŽāύ āĻšāĻŦ⧇ –
				
					 func GenerateThumbnail(category string, data []byte) []byte {
       if category == "Photo" {
           // implementation
       } else {
           // implementation
       }
       return thumbnail // it carries []byte
   }

				
			

āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āύāĻŋā§Ÿā§‡ āĻ­āĻžāĻŦāĻžāϰ āĻĻāϰāĻ•āĻžāϰ āύ⧇āχāĨ¤ āϤāĻŦ⧇ āĻāϟ⧁āϕ⧁ āĻŦ⧁āĻāĻž āϝāĻžāĻšā§āϛ⧇ āϝ⧇, Photo āĻāĻŦāĻ‚ Video āĻāϰ āϜāĻ¨ā§āϝ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āφāϞāĻžāĻĻāĻž āĻšāĻŦ⧇āĨ¤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāχ āĻ•āĻžāϜāϟāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āϰāĻž āϝāĻžā§Ÿ?

    3. āύāĻŋāĻšā§‡āϰ āϕ⧋āĻĄāϟāĻŋāϰ āφāωāϟāĻĒ⧁āϟ āĻ•āĻŋ āĻšāĻŦ⧇ ?

				
					 package main

   import (
       "fmt"
       "math"
   )

   type geometry interface {
       area() float64
       perim() float64
   }

   type rect struct {
       width, height float64
   }

   type circle struct {
       radius float64
   }

   func (r rect) area() float64 {
       return r.width * r.height
   }

   func (r rect) perim() float64 {
       return 2*r.width + 2*r.height
   }

   func (c circle) area() float64 {
       return math.Pi * c.radius * c.radius
   }

   func (c circle) perim() float64 {
       return 2 * math.Pi * c.radius
   }

   func measure(g geometry) {
       fmt.Println(g)
       fmt.Println(g.area())
       fmt.Println(g.perim())
   }

   func main() {
       r := rect{width: 3, height: 4}
       c := circle{radius: 5}
       measure(r)
       measure(c)
   }

				
			

  4. āĻāχ āϕ⧋āĻĄāϟāĻŋāϰ āφāωāϟāĻĒ⧁āϟ āĻ•āĻŋ āĻšāĻŦ⧇? āĻŦ⧁āĻāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŦ āφāωāϟāĻĒ⧁āϟ āϕ⧇āύ āĻāĻŽāύ āĻšāĻšā§āϛ⧇ āĻāĻŦāĻ‚ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰāϞ⧇ āĻ āĻŋāĻ• āĻ•āϰ⧇ āĻĢ⧇āϞāĻŋ –

				
					 package main

   import "fmt"

   type Location struct {
       Latitude  float64 `json:"lat"`
       Longitude float64 `json:"lon"`
   }

   type Post struct {
       Category string   `json:"category"`
       Time     int64    `json:"time"`
       Location Location `json:"location"`
   }

   func (post Post) setLocation() {
       post.Location = Location{
           Latitude:  23.99,
           Longitude: 90.45,
       }
   }

   func main() {
       post := Post{}
       post.setLocation()
       fmt.Println(post.Location)
   }

				
			

  5. Employee  āύāĻžāĻŽā§‡āϰ āĻāĻ•āϟāĻŋ Struct āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻžāϰ name, age āĻāĻŦāĻ‚ salary āĻĢāĻŋāĻ˛ā§āĻĄ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ GiveRaise āύāĻžāĻŽāĻ• āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻž āĻāĻ•āϜāύ āĻ•āĻ°ā§āĻŽāϚāĻžāϰ⧀āϰ āĻŦ⧇āϤāύ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻļāϤāĻžāĻ‚āĻļ āĻšāĻžāϰ⧇ āĻŦ⧃āĻĻā§āϧāĻŋ āĻ•āϰ⧇āĨ¤ āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϞāĻŋāϖ⧁āύ āϝāĻž āĻāĻ•āϟāĻŋ Employee āχāĻ¨ā§āϏāĻŸā§āϝāĻžāĻ¨ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧇, GiveRaise āĻŽā§‡āĻĨāĻĄ āĻāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āĻŦ⧇āϤāĻ¨Â  āĻŦ⧃āĻĻā§āϧāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āύāϤ⧁āύ āĻŦ⧇āϤāύ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤

				
					package main

   type Employee struct {
  	 // implementation
   }
   func main() {
   }

				
			

6. Add, Subtract, Multiply āĻāĻŦāĻ‚ Divide āĻŽā§‡āĻĨāĻĄ āϏāĻš Calculator āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤ BasicCalculator āĻāĻŦāĻ‚ ScientificCalculator  āύāĻžāĻŽā§‡ āĻĻ⧁āχāϟāĻŋ Struct āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻž āĻŽā§ŒāϞāĻŋāĻ• āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϗ⧁āϞ⧋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ Calculator  āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϕ⧇ āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϞāĻŋāϖ⧁āύ āϝāĻž āĻāĻ•āϟāĻŋ BasicCalculator āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ ScientificCalculator  āϤ⧈āϰāĻŋ āĻ•āϰ⧇, āωāĻ­āϝāĻŧ Calculator  āĻĻāĻŋāϝāĻŧ⧇ āĻ•āĻŋāϛ⧁ āĻ—āĻŖāύāĻž āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞāϗ⧁āϞāĻŋ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤

7. PrintValues āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āϞāĻŋāϖ⧁āύ āϝāĻž āĻāĻŽā§āĻĒāϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āϞāĻžāχāϏ āύ⧇āϝāĻŧ āĻāĻŦāĻ‚ āĻ¸ā§āϞāĻžāχāϏ⧇āϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ⧇āϰ āĻŽāĻžāύ āĻĒā§āϰāĻŋāĻ¨ā§āϟ āĻ•āϰ⧇āĨ¤ āφāĻĒāύāĻžāϰ āĻĢāĻžāĻ‚āĻļāύ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻŽāĻžāύ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

				
					
   package main

   func main() {
       vals := []interface{}{1, "hello", true}
       PrintValues(vals)
   }

   // āφāωāϟāĻĒ⧁āϟāσ
   // 1
   // hello
   // true
				
			

8. āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϞāĻŋāϖ⧁āύ āϝ⧇āĻ–āĻžāύ⧇ Formatter āύāĻžāĻŽāĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻāĻ•āϟāĻŋ Format() āĻŽā§‡āĻĨāĻĄ āφāϛ⧇ āϝāĻž āĻ•āĻŋāϛ⧁ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻāϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āϞāĻžāχāϏ āύ⧇āϝāĻŧ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟ āĻ•āϰāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤ Formatter āύāĻžāĻŽāĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϟāĻŋāϕ⧇ CSVFormatter struct āĻāĻŦāĻ‚ HTMLFormatter struct āĻĻā§āĻŦāĻžāϰāĻž āχāĻŽāĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧁āύāĨ¤ ⧎ Format āύāĻžāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύ āϝāĻž āĻāĻ•āϟāĻŋ Formatter āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āϞāĻžāχāϏ āύ⧇āϝāĻŧ āĻāĻŦāĻ‚ Format() āĻŽā§‡āĻĨāĻĄāϕ⧇ āĻ•āϞ āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ CSVFormatter āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ HTMLFormatter āĻĻāĻŋāϝāĻŧ⧇ āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧁āύ⧎ āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāϏ āĻ•āϰāĻž Formatter āϟāĻŋ āĻāĻ•āϟāĻŋ CSVFormatter āύāĻžāĻ•āĻŋ HTMLFormatter āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āϟāĻžāχāĻĒ āĻ…ā§āϝāĻžāϏāĻžāϰāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϐāϟāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻŽā§‡āĻĨāĻĄāϕ⧇ āĻ•āϞ āĻ•āϰ⧁āύ⧎

				
					package main

import (
	"fmt"
	"strings"
)

// Formatter interface
type Formatter interface {
	Format([]string) string
}

// CSVFormatter struct

// Format method for CSVFormatter

// HTMLFormatter struct

// Format method for HTMLFormatter

// TestFormat function
func TestFormat(f Formatter, data []string) {

}

// CSVSpecificMethod for CSVFormatt
// HTMLSpecificMethod for HTMLFormatter

func main() {
	// Test CSV formatter
	csvFormatter := CSVFormatter{}
	TestFormat(csvFormatter, []string{"apple", "banana", "orange"})
	fmt.Println()

	// Test HTML formatter
	htmlFormatter := HTMLFormatter{}
	TestFormat(htmlFormatter, []string{"apple", "banana", "orange"})
}