Published using Google Docs
ПрогрЗадачки
Updated automatically every 5 minutes

Задачи на постепенное усвоение материала по курсу “Прикладное программирование”

После успешного выполнения вашей программы не забудьте записать себе ее исходный код, чтобы использовать или подсмотреть его при написании последующих программ.

  1. Вывести на экран надпись “Hello”. (WRITE)
  2. Присвоить переменным a и b значения и вывести их на экран. (a = 1)
  3. Вывести на экран значение суммы a и b.
  4. Ввести с клавиатуры значения переменных a и b и вывести на экран их сумму. (READ)
  5. Ввести с клавиатуры значения переменных a и b и вывести
    на экран “
    a больше (меньше, равна)  b”. (IF ... THEN … END IF)
  6. Написать программу вывода на экран корней квадратного уравнения (x1, x2) с вводом значений коэффициентов a, b, c.
  7. Вывести на экран числа от 1 до 10, используя оператор цикла. (DO … END DO)
  8. Вывести на экран значение суммы и произведения чисел от 1 до 15, используя оператор цикла.
  9. Ввести число с клавиатуры, найти его факториал, используя оператор цикла, и вывести на экран эти два числа.
  10. Присвоить элементам одномерного массива значения от 1 до 10, используя оператор цикла, и вывести их на экран. (INTEGER a(10))
  11. Найти сумму и произведение элементов массива ( sum = sum + a(i) ).
  12. Найти максимальное и минимальное значение среди элементов массива и разницу между ними.
  13. Присвоить с помощью цикла элементам двумерного массива (3x4) значения от 1 до 12 и вывести их на экран в столбик.
  14. Вывести значения двумерного массива на экран в виде таблицы со строками и столбцами.
  15. Поменять местами максимальный и минимальный элемент двумерного массива и вывести на экран начальный и итоговый массив.
  16. Поменять местами строки и столбцы относительно максимального элемента на главной диагонали массива 5х5.
  17. Упорядочить элементы одномерного массива по возрастанию
    (IF (a(i) > a(i+1)) THEN … END IF).
  18. Найти сумму элементов, находящихся на главной диагонали.
  19. Вывести в одной программе число (например, 1) на экран в следующем формате
  1. 1.000000
  2. __1.000
  3. __1
  4. ___ХХ__                 (где _ - это пробел, то есть число должно быть окружено пробелами)
  1. Вывести на экран 3 числа (например 1, 2, 3) в следующем формате
  1. XX.ХХ;_YY.YY;_ZZ.ZZ
  2. __XX.ХХ_;__YY.YY_;__ZZ.ZZ_;
  1. Вывести текст “Hello” в текстовый файл output.txt (OPEN() … CLOSE ()).
  2. Ввести текст с клавиатуры и вывести его в текстовый файл.
  3. Считать текст из текстового файла и вывести его на экран.
  4. Считать из текстового файла одномерный массив и вывести его на экран.
  5. Вывести значения двумерного массива в текстовый файл.
  6. Вывести значения двумерного массива в текстовый файл в виде таблицы со строками и столбцами с разделением значений точкой с запятой.
  7. Считать из текстового файла двумерный массив и вывести на экран.
  8. Считать 2 числа из текстового файла и вывести их сумму в новый текстовый файл.

  1. Создать массив, значения которого повторяют наименования клеток в шахматах (Е2, Е4 и т.д.)
  2. Считать из текстового файла ход шахматным конем (например, B1-C3) и проверить его корректность, вывести в текстовый файл результат (корректен ход или нет).
  3. Вывести значения двумерного массива 3x2 в графический файл (положительные - белый цвет, отрицательные - черный), используется графический формат PPM, описание есть в википедии.
  4. Вывести значения двумерного массива 10х10 в графический файл (каждое число - свой цвет).
  5. Вывести в графический файл размером 256х256 пикселей график функции sin 2x.

  1. Найти решение системы линейных уравнений методом прогонки (для трехдиагональной матрицы).
  2. Найти решение системы линейных уравнений методом Гаусса-Зейделя.

Задачи 29-33 - повышенной сложности, если не уверены в своих силах, можете их пропустить.

Задачи 34-35 требуются для выполнения домашнего задания по дисциплине “Вычислительная газогидродинамика”, а также будут полезны для дальнейшей научной деятельности.

После решения первых 28 задач вы готовы и можете начинать делать домашнее задание. А после - домашнее задание по “Вычислительной газогидродинамике”.

Удачи!

Рекомендации

Типичные ошибки

Основные операторы и их синтаксис

Объявление переменных

INTEGER i, j, k

REAL a, b

CHARACTER*8 txt1, txt2

Объявление массивов:

  • одномерного из 10 элем.,
  • двумерного (12х8),
  • трехмерного

INTEGER a(10)  

REAL b(12,8)

INTEGER a(n,m,p)  

Присваивание

b = 10

a = b

Вывод:

  • переменной
  • текста
  • нескольких (через запятую)
  • переменной REAL с форматом

WRITE(*,*) a

WRITE(*,*) “Вывод текста“

WRITE(*,*) “a = “ , a , “b = “ , b

WRITE(*,”(F8.4)”) а

Вывод без перевода строки

(для вывода массивов)

WRITE(*,"(A)",advance="no") a, b, c, d

Ввод:

значение переменной

READ(*,*) a

Условие

IF (a == b)  THEN

  b = b + 1

END IF

--------------------------------------------------

IF (a > b)  THEN

  max = a

END IF

Цикл

DO i = 1, 10 , 1

  a(i) = i  

  sum = sum + a(i)

END DO

Цикл для двумерного

массива

(пример - присвоение)

DO i = 1, 10 , 1

  DO j = 1, 10 , 1

     a(i,j) = i + j

  END DO

END DO

Работа с массивами:

присвоение в цикле

присвоение всем элементам

неправильно

A(i) = i  (в цикле)

V = 2

C(i,j)=1 (без цикла)

Работа с элементами массива:

  • десятый элемент равен 1
  • все элементы равны 20
  • вывести 5-й эл. массива

А(10) = 1

А = 20  

WRITE(*,*) А(5)

Объявление массива,

присвоение значений элементам и

вывод на экран (оператор print)

integer, dimension(4, 3) :: MATRIX

data MATRIX   /1, 4, 7, 10, 2, 5, 8, 11 ,3 , 6 , 9 , 12/

I=1; print*, (MATRIX(I, J), J = 1, 3)

I=2; print*, (MATRIX(I, J), J = 1, 3)

I=3; print*, (MATRIX(I, J), J = 1, 3)

I=4; print*, (MATRIX(I, J), J = 1, 3)

Работа с файлами

OPEN(123,FILE="out.txt")
WRITE(123,*) “hello”
CLOSE(123)

123 это ID файла (может быть любой цифрой)