Примеры кода (1161128)
Текст из файла
+ - естьX - такая фича не поддерживается данным языком- или <пусто> - еще нет примера кода.ЯзыкиCC++PythonJavaC#Ada95классыX++++++++++++/-+циклы+++рекурсия+функцииисключенияXстат.полиморфизм++X+Xдин. полиморфизмX+пар. полиморфизмX+итераторыXабстрактный классXlambdaXфункторыXввод/вывод++X+++X++++++++-/+С++Проверка числа на простоту на этапе компиляции при помощи шаблоновПример с динамическим полиморфизмом и абстрактным классомС#Пример использования базовых операций ввода/вывода, конструкций ветвления и цикловдля вычисления наибольшего общего делителя, как рекурсивно, так и в цикле.Пример использования наследования для реализации фигур: прямоугольника, круга,многоугольника и абстрактной функции, вычисляющей площадь.Пример с перегрузкой операторов +, - и пользовательского преобразования типовПример определения интерфейса и статического полиморфизма с его методамиПример параметрического полиморфизмаИспользование лямбда-функций и делегатовJavaMerge sort.
Здесь есть циклы, операторы ветвления, объявление классов, итераторы,стандартные контейнеры, параметрический полиморфизмПараметрический полиморфизм + вывод в консольПример реализации итерируемого классаПример абстрактного класса + наследованиеPythonИсключенияПример с наследованием классов, циклами, вводом, выводом, спискомЛямбда-функция с рекурсией + ввод/вывод. (Факториал)Пример функции-генератора (итераторы)Ada95Пример с инкапсуляцией и наследованиемКлассический GCD. Использование функций, циклов и вывода.С++Проверка числа на простоту на этапе компиляции при помощи шаблоновstruct false_type {typedef false_type type;enum { value = 0 };};struct true_type {typedef true_type type;enum { value = 1 };};template<bool condition, class T, class U>struct if_ {typedef U type;};template <class T, class U>struct if_<true, T, U> {typedef T type;};template<size_t N, size_t c>struct is_prime_impl {typedef typename if_<(c*c > N),true_type,typename if_<(N % c == 0),false_type,is_prime_impl<N, c+1> >::type >::type type;enum { value = type::value };};template<size_t N>struct is_prime {enum { value = is_prime_impl<N, 2>::type::value };};template <>struct is_prime<0> {enum { value = 0 };};template <>struct is_prime<1> {enum { value = 0 };};Пример с динамическим полиморфизмом и абстрактным классом// Base classclass Shape {public:// pure virtual function providing interface framework.virtual int getArea() = 0;void setWidth(int w) {width = w;}void setHeight(int h) {height = h;}protected:int width;int height;};// Derived classesclass Rectangle: public Shape {public:int getArea() {return (width * height);}};class Triangle: public Shape {public:int getArea() {return (width * height)/2;}};С#Пример использования базовых операций ввода/вывода, конструкций ветвления и цикловдля вычисления наибольшего общего делителя, как рекурсивно, так и в цикле.using System.IO;using System;class Program {static int GCD_rec(int a, int b) {if (b == 0)return a;elsereturn GCD_rec(b, a % b);}static int GCD_rec2(int a, int b){ return b == 0 ? a : GCD_rec2(b, a % b); }static int GCD_loop(int a, int b) {while (b != 0) {int t = a;a = b;b = t % b;}return a;}static void Main() {Console.WriteLine("Enter the number: ");int testA = int.Parse(Console.ReadLine());Console.WriteLine("Enter the number: ");int testB = int.Parse(Console.ReadLine());Console.WriteLine("GCD_rec result: " + GCD_rec(testA, testB));Console.WriteLine("GCD_rec2 result: " + GCD_rec2(testA, testB));Console.WriteLine("GCD_loop result: " + GCD_loop(testA, testB));}}Пример использования наследования для реализации фигур: прямоугольника, круга,многоугольника и абстрактной функции, вычисляющей площадь.usingusingusingusingSystem.IO;System;System.Collections.Generic;System.Linq;abstract class Shape {public abstract double Square();}class Rect : Shape {double w, h; // По умолчанию поле считается privatepublic Rect(double w, double h) { this.w = w; this.h = h; }public override double Square(){ return w * h; }}class Circle : Shape {double radius;public Circle(double rad) { radius = rad; }public override double Square(){ return Math.PI * radius * radius; }}class Polygon : Shape {List<double> xs, ys;public Polygon(List<double> xs, List<double> ys) {if (xs.Count != ys.Count) {throw new Exception("Number of 'x' coordinates must match number of 'y'coordinates");}this.xs = xs.ToList(); // ToList() вызывается для копирования спискаthis.ys = ys.ToList(); // иначе просто сохранилась бы ссылка}public override double Square() {double res = 0;for (int i = 0; i < xs.Count; i++) {int ni = (i + 1) % xs.Count;res += xs[ni] * ys[i] - xs[i] * ys[ni];}return Math.Abs(res) / 2;}}class Program {static void Main() {// Shape shap = new Shape(); <- ошибка, так нельзя, так как класс абстрактныйShape circ = new Circle(10);Shape rect = new Rect(5, 6);Console.WriteLine("circ square = " + circ.Square());Console.WriteLine("rect square = " + rect.Square());String input = Console.ReadLine();double[] nums = input.Split(' ') // разбиваем по пробелам.Where(s => !String.IsNullOrWhiteSpace(s))// оставляем только такие строки 's', которые не пустые.Select(s => double.Parse(s))// вместо каждой строки 's' выбираем число, которое она обозначает.ToArray();List<double>[] coords = new List<double>[2];coords[0] = new List<double>();coords[1] = new List<double>();for (int i = 0; i < nums.Length; i++) {coords[i % 2].Add(nums[i]);}try {Shape poly = new Polygon(coords[0], coords[1]);Console.WriteLine(poly.Square());} catch (Exception ex) {// если ввели нечётное количество чисел может произойти исключениеConsole.WriteLine(ex.Message);}}}Пример с перегрузкой операторов +, - и пользовательского преобразования типовclass Fraction {int num, den;public Fraction(int num, int den) {this.num = num;this.den = den;}public static Fraction operator +(Fraction a, Fraction b) {return new Fraction(a.num * b.den + b.num * a.den,a.den * b.den);}public static Fraction operator *(Fraction a, Fraction b) {return new Fraction(a.num * b.num, a.den * b.den);}// user-defined conversion from Fraction to doublepublic static implicit operator double(Fraction f) {return (double)f.num / f.den;}}class Test {static void Main() {Fraction a = new Fraction(1, 2);Fraction b = new Fraction(3, 7);Fraction c = new Fraction(2, 3);Console.WriteLine((double)(a * b + c));}}Пример определения интерфейса и статического полиморфизма с его методамиinterface ITest{void F();void F(int x);void F(ref int x);void F(int x, int y);int F(string s);// int F(int x);void F(string[] a);// void F(params string[] a);}////////////////F()F(int)F(ref int)F(int, int)F(string)F(int) error повторное определениеF(string[])F(string[]) error повторное определениеПример параметрического полиморфизмаvoid PrintCountGeneric<T>(T collection) where T : ICollection{Console.WriteLine(collection.Count);}...var list = new List<int>() { 1, 2 };PrintCountGeneric(list);Использование лямбда-функций и делегатовusing System.IO;using System;class Program {delegate void Handler(int x);static void PrintX(int x) {Console.WriteLine(x);}static void PrintXX(int x) {Console.WriteLine(x * x);}static void Main() {// Func<int, int, double>// int, int - типы параметров// последний в списке тип double - тип возвращаемого значенияFunc<int, int, double> pow =(x, y) => Math.Pow(x, y);// Action<int, int>// int, int - типы параметров// возвращаемого значения в Action нетAction<int, int> printpow =(x, y) => Console.WriteLine("pow: " + pow(x, y));printpow(2, 3);printpow(5, 2);Action<int> printpow4 = x => printpow(x, 4);// Handler - набор функцийHandler h = PrintX;h += PrintXX;h += x => Console.WriteLine(x * x * x);h += new Handler(printpow4);Console.WriteLine("\nh(5):");h(5); // Тут все собранные функции вызовутся с параметром 5}}JavaMerge sort.
Здесь есть циклы, операторы ветвления, объявление классов, итераторы,стандартные контейнеры, параметрический полиморфизмimport java.util.List;import java.util.ArrayList;import java.util.Iterator;public class Merge{public static <E extends Comparable<? super E>> List<E> mergeSort(List<E> m){if(m.size() <= 1) return m;int middle = m.size() / 2;List<E> left = m.subList(0, middle);List<E> right = m.subList(middle, m.size());right = mergeSort(right);left = mergeSort(left);List<E> result = merge(left, right);return result;}public static <E extends Comparable<? super E>> List<E> merge(List<E> left, List<E>right){List<E> result = new ArrayList<E>();Iterator<E> it1 = left.iterator();Iterator<E> it2 = right.iterator();E x = it1.next();E y = it2.next();while (true){if(x.compareTo(y) <= 0){result.add(x);if(it1.hasNext()){x = it1.next();}else{result.add(y);while(it2.hasNext()){result.add(it2.next());}break;}}else{result.add(y);if(it2.hasNext()){y = it2.next();}else{result.add(x);while (it1.hasNext()){result.add(it1.next());}break;}}}return result;}}Параметрический полиморфизм + вывод в консольpublic class Box<T> {private T t;public void add(T t) {this.t = t;}public T get() {return t;}public static void main(String[] args) {Box<Integer> integerBox = new Box<Integer>();Box<String> stringBox = new Box<String>();integerBox.add(new Integer(10));stringBox.add(new String("Hello World"));System.out.printf("Integer Value :%d\n\n", integerBox.get());System.out.printf("String Value :%s\n", stringBox.get());}}Пример реализации итерируемого классаimport java.util.NoSuchElementException;import java.util.Iterator;public class Range implements Iterable<Integer> {private int start, end;public Range(int start, int end) {this.start = start;this.end = end;}public Iterator<Integer> iterator() {return new RangeIterator();}// Inner class exampleprivate static final class RangeIterator implementsIterator<Integer> {private int cursor;private final int end;public RangeIterator(int start, int end) {this.cursor = start;this.end = end;}public boolean hasNext() {return this.cursor < end;}public Integer next() {if(this.hasNext()) {int current = cursor;cursor ++;return current;}throw new NoSuchElementException();}public void remove() {throw new UnsupportedOperationException();}}public static void main(String[] args) {Range range = new Range(1, 10);// Long wayIterator<Integer> it = range.iterator();while(it.hasNext()) {int cur = it.next();System.out.println(cur);}// Shorter, nicer way:// Read ":" as "in"for(Integer cur : range) {System.out.println(cur);}}}Пример абстрактного класса + наследованиеabstract class Instrument {protected String name;abstract public void play();}abstract class StringedInstrument extends Instrument {protected int numberOfStrings;}public class ElectricGuitar extends StringedInstrument {public ElectricGuitar() {super();this.name = "Guitar";this.numberOfStrings = 6;}public ElectricGuitar(int numberOfStrings) {super();this.name = "Guitar";this.numberOfStrings = numberOfStrings;}@Overridepublic void play() {System.out.println("An electric " + numberOfStrings + "-string " + name+ " is rocking!");}}public class ElectricBassGuitar extends StringedInstrument {public ElectricBassGuitar() {super();this.name = "Bass Guitar";this.numberOfStrings = 4;}public ElectricBassGuitar(int numberOfStrings) {super();this.name = "Bass Guitar";this.numberOfStrings = numberOfStrings;}@Overridepublic void play() {System.out.println("An electric " + numberOfStrings + "-string " + name+ " is rocking!");}}public class Execution {public static void main(String[] args) {ElectricGuitar guitar = new ElectricGuitar();ElectricBassGuitar bassGuitar = new ElectricBassGuitar();guitar.play();bassGuitar.play();guitar = new ElectricGuitar(7);bassGuitar = new ElectricBassGuitar(5);guitar.play();bassGuitar.play();}}PythonИсключенияtry:raise ValueError #Так генерируем исключениеexcept ValueError:print('Поймали ошибку определенного вида')except Exception:print('поймали любую ошибку')else:print('Выводим это, если не поймали никакой ошибки')finally:print('Выводим это независимо от того, была ошибка или нет ')Пример с наследованием классов, циклами, вводом, выводом, спискомimport mathclass Figure(object):def __init__(self, center_x = 0, center_y = 0):self.x = center_x # <--- self = thisself.y = center_ydef area(self):pass # в python нет виртуальных методовclass Square(Figure):def __init__(self, size = 1):Figure.__init__(self) # вызов родительского конструктораself.size = sizedef area(self):return self.size ** 2;class Circle(Figure):def __init__(self, radius = 1):Figure.__init__(self)self.radius = radiusdef area(self):return math.pi * self.radius ** 2if __name__ == "__main__":numbers = map(int, input('Enter numbers: ').split())circles = [Circle(x) for x in numbers] # <--- list comprehensionfor c in circles: # <--- цикл forprint("Circle with r = {0} and area = {1}.".format(c.radius, c.area()))Лямбда-функция с рекурсией + ввод/вывод.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.